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.
Best practices on how the name your utm tracking as an eCommerce brand, including tools, template and tutorials.
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
Let's get started.
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:
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.
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:
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.
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.
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.
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.
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.
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:
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!
Ok, now that we know what we want to measure, how do we distribute these dimension across each of the five parameters?
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.
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:
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.
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.
How are you telling the platform to distribute your budget?
What is the conversion event you are optimising for? But depending on account size or purchase funnel, you might want to try different options.
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.
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.
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:
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.
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.
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.
Like I mentioned before this might be key for some brands, for others not at all. Are there specific demographic characteristics you are targeting?
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.
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:
Is it an image, video, carousel etc?
What is the creative focus of the creative? UGC material, 3D animations, stop motion?
A name that you can use to refer to the creative when talking about it.
What product are you promoting in the creative.
What is the primary motivator you are using for people to take action? Scarcity, Sale, New Arrivals?
What type of page are you linking to? A landing page? A product detail page?
What page exactly are you linking to?
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.
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.
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:
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.
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.
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.
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.
Your naming needs to follow a clear structure, that we already talked about. But you also need to make sure that
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.
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.
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.
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.
That will draw in their names as the parameters which allowing to match Facebook data on its Google Analytics data later.
So for Influencer marketing there are a few important things that you want to track .
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.
Adwords actually contains multiple channels. Depending on how you want to define it, up to 5.
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.
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.
Like I outlined above, I would split email marketing up into three different channels.
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.
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.
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.
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).
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.
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:
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?
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 🙏
Best practices on how the name your utm tracking as an eCommerce brand, including tools, template and tutorials.
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
Let's get started.
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:
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.
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:
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.
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.
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.
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.
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.
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:
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!
Ok, now that we know what we want to measure, how do we distribute these dimension across each of the five parameters?
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.
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:
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.
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.
How are you telling the platform to distribute your budget?
What is the conversion event you are optimising for? But depending on account size or purchase funnel, you might want to try different options.
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.
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.
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:
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.
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.
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.
Like I mentioned before this might be key for some brands, for others not at all. Are there specific demographic characteristics you are targeting?
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.
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:
Is it an image, video, carousel etc?
What is the creative focus of the creative? UGC material, 3D animations, stop motion?
A name that you can use to refer to the creative when talking about it.
What product are you promoting in the creative.
What is the primary motivator you are using for people to take action? Scarcity, Sale, New Arrivals?
What type of page are you linking to? A landing page? A product detail page?
What page exactly are you linking to?
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.
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.
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:
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.
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.
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.
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.
Your naming needs to follow a clear structure, that we already talked about. But you also need to make sure that
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.
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.
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.
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.
That will draw in their names as the parameters which allowing to match Facebook data on its Google Analytics data later.
So for Influencer marketing there are a few important things that you want to track .
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.
Adwords actually contains multiple channels. Depending on how you want to define it, up to 5.
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.
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.
Like I outlined above, I would split email marketing up into three different channels.
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.
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.
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.
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).
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.
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:
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?
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 🙏