All About UTM Parameters
What are UTM parameters?
Literally, UTM stands for Urchin Tracking Module. These are URL query parameters added to the end of the page path to provide detail about the source of traffic to a web site. They were originally created by a company called Urchin, which was later purchased by Google. Due to the proliferation of Google Analytics, these parameters are now an industry standard for tracking marketing campaigns.
Why are well-formed URLs and UTM parameters important?
On October 18, 2011, Google Search changed its protocol from HTTP to HTTPS. Google announced that, as search becomes an increasingly customized experience, it recognized the growing importance of protecting the personalized search results it delivers. Everyone quickly followed suit. As a result, if your link on a HTTPS (secure) site pointed to an HTTP (unsecure) destination, and your destination site was HTTPS (secure), you would lose data about the source of the traffic when the protocol switched. This is a protocol switching error, and it is simply how all web browsers work. You could either switch the link to HTTPS, add UTM codes, or both.
Next, native mobile apps appeared on the scene. These can — and often do — lack a web browser entirely. At this point, using appropriate UTM codes becomes a must in order to properly attribute traffic in web analytics. This change became particularly significant on August 23, 2012, when Facebook announced the release of a native mobile app. Facebook iOS Product Manager Mick Johnson stated that while they had a great mobile website, embedding HTML5 inside an app isn't what people expect.
So when creating a URL link back to your web site, the checklist is:
- Does your link protocol match the landing page protocol? The likely answer is your link protocol should be HTTPS.
- Do you have UTM parameters with appropriate, industry-standard values for
utm_sourceandutm_medium? - Always make sure your finished link resolves to an actual page and does not produce a 404 error.
What do these parameters mean?
utm_medium: This is your communication channel. Is it social? A partner site referral link? A banner ad? An email communication? Paid media? Organic?
utm_source: This is the origin of the traffic. Is it a link on Facebook, Twitter, or LinkedIn? A banner ad running on ESPN or NBC Sports? An emailed newsletter?
utm_campaign: This is a descriptive value that characterizes your marketing effort. Does this link support the XYZ_Summer_Conference_Q2? Is it the Partner_Lead_Generation_Push_Q1? Describe the purpose of the link in a way that will be meaningful in reporting.
utm_content: Is there anything more that might be useful to know and measure? Maybe you want to note that the banner ad was 300x300, or that this effort was a partnership with a media buying company like BigMediaBuyInc. If you have two or more links where everything else is the same except the size of the banner, or one is organic social while the other is paid, you might indicate that difference here.
utm_term: Are these links for a paid search campaign? Here you might enter the terms you bought, like product+services or industry+organization. Since AdWords tracks this and links to Google Analytics, you'll rarely need to use this field.
It is recommended you always use at least utm_medium, utm_source, and utm_campaign. You can optionally also use utm_content. Please avoid special characters or spaces, as there is potential uncertainty in how they may be processed when the browser renders the URL. The _ (underscore) and - (dash) characters are acceptable. The + character is the delimiter for separating words in utm_term. Using all lowercase is recommended for consistency when rolling up data for reporting, though it is a suggestion rather than a requirement. Note that the first URL query parameter after the page path begins with a ? (question mark), and subsequent parameters are separated by a & (ampersand). The # (hash) character has a special meaning for how browsers render pages — known as deep linking — so please avoid using it.
There are industry-recognized values for utm_medium. Those values are as follows:
utm_medium=banner— Bannerutm_medium=cpa— Paid Actionutm_medium=cpc— Paid Searchutm_medium=cpi— Paid Installationutm_medium=cpl— Paid Leadsutm_medium=cpm— Paid Displayutm_medium=cps— Paid Salesutm_medium=cpv— Paid Videoutm_medium=email— Email / Newsletterutm_medium=organic— Unpaid Searchutm_medium=ppc— Pay Per Clickutm_medium=referral— Referral / Influencerutm_medium=social— Social
When specifying a value for utm_source, pick a value and stick with it. For example, traffic from Facebook may arrive from facebook.com, m.facebook.com, or l.facebook.com. Keep it uniform and simple: use utm_source=facebook.
What does a well-formed UTM-encoded URL look like?
A well-formed, tagged URL will resemble the following examples:
https://www.mycompany.com/landing_page.html?utm_medium=cpc&utm_source=facebook&utm_campaign=spring_social_media&utm_content=paid
https://www.mycompany.com/landing_page.html?utm_medium=social&utm_source=twitter&utm_campaign=spring_social_media&utm_content=organic
https://www.mycompany.com/landing_page.html?utm_medium=referral&utm_source=indeed.com&utm_campaign=spring_lead_partnership&utm_content=bigmediainc
https://www.mycompany.com/landing_page.html?utm_medium=email&utm_source=email&utm_campaign=mycompany_newsletter_q1
What is going on with the utm_medium parameter?
Why use utm_medium=cpc&utm_source=facebook on the first example? Facebook is obviously social media — so why not use utm_medium=social&utm_source=facebook? There are three schools of thought for paid social UTM tagging:
- Use
utm_medium=social&utm_source=facebookin combination with&utm_content=paid. In reporting, the value ofutm_contentis inspected to distinguish paid from organic social. - Use
utm_medium=cpc&utm_source=facebook. The valuecpcis an industry-recognized term for paid media. You will inspect the Google Analytics "source / medium" dimension in reporting to distinguish paid from organic social. - Use
utm_medium=paidsocial&utm_source=facebook. The termpaidsocialis a custom value used to directly distinguish paid from organic social. You will inspect the value ofutm_mediumin reporting.
Since all three approaches have similar reporting implications, pick one standard and stick with it. Option #2 is the author's personal preference.
How about modifying the channel grouping in Google Analytics?
That is an interesting idea, but there is a significant caveat. The view channel grouping applies from a point in time forward. If someone launched a campaign last week using unapproved values for utm_medium and utm_source, but only told you this week, you cannot correct or adjust the historical reporting with this technique. There is also a custom channel grouping beta option, but it is a personal tool and will not be visible to others with access to the Google Analytics view. Changing the channel grouping from the default is not recommended.
Then how do I modify the channel grouping to reflect paid social?
If you are using method #2 or #3 above, you can create a calculated dimension in Google Data Studio that simultaneously accommodates both techniques. It will work on all data — past, present, and future.
CASE
WHEN REGEXP_MATCH(Source / Medium, "((?i).*(facebook|instagram|twitter|pinterest|snapchat|linkedin|youtube).*(cpc|ppc|cpm|paidsocial)$)|((?i)^t\\.co .*(cpc|ppc|cpm|paidsocial)$)") then "Paid Social"
WHEN REGEXP_MATCH(Source / Medium, "((?i).*(facebook|instagram|twitter|pinterest|snapchat|linkedin|youtube).*(organic|social|referral)$)|((?i)^t\\.co .*(organic|social|referral)$)") then "Organic Social"
ELSE Default Channel Grouping
END
What if there is still a lack of uniformity in how utm_source is reflected in Google Analytics?
This can be addressed in Google Data Studio with a calculated dimension:
REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(REGEXP_REPLACE(LOWER(source)
,".*facebook\\.com$","facebook")
,".*instagram\\.com$","instagram")
,".*twitter\\.com$","twitter")
,".*snapchat\\.com$","snapchat")
,".*youtube\\.com$","youtube")
,".*pinterest\\.com$","pinterest")
,"^google\\.com$","google")
,".*\\.google\\.com$","google")
,"^t\\.co$","twitter")
Should I use Google Analytics view filter settings to modify the incoming page path?
Never use the view filter settings to modify the incoming page path in any way. The unadulterated incoming URL may be your only clue regarding URL query parameters from niche web analytics products, or malformed UTM parameters, like in the examples below:
https://www.mycompany.com/?cid=mycompany_newsletter_q1
https://www.mycompany.com/?WT.mc_id=mycompany_newsletter_q1
https://www.mycompany.com/landing_page.html?mut_medium=email&mut_source=email&mut_campaign=mycompany_newsletter_q1
Also strongly avoid using view filter settings to concatenate the host name to the page path — this can be accomplished in reporting instead. The one exception to the "never modify" rule is using View Settings / Exclude URL Query Parameters to remove PII from the URL. That is highly encouraged.
Then how do I modify the page path so data rolls up neatly, disregarding URL query parameters?
In Google Data Studio, you can create a calculated dimension with the code below. It will work on all data — past, present, and future.
LOWER(REGEXP_REPLACE(Page, '\\?.+', ''))
What if I put the wrong UTM URL on a site?
If you place a URL tagged with utm_source=facebook on a Twitter post, your site will "think" the traffic came from Facebook. In the old days, it was sufficient to post a plain URL and let the web browser sort out that the traffic came from Twitter or Facebook. That is no longer the case. The prevalence of mobile native apps makes using a correct, well-formed, UTM-encoded URL imperative.
Google already has a tool for this, right?
Yes, Google has a Campaign URL Builder tool available at:
https://ga-dev-tools.appspot.com/campaign-url-builder/
However, it has several shortcomings. It does not check that the protocol is appropriate (secure vs. unsecure). It does not validate that the source makes sense as a source of traffic. It does not validate that you are using industry-recognized values for utm_medium. It does not check that your page actually resolves to where you intend it to go. It is still necessary to impose and follow rules for UTM values and verify the resulting URL yourself.
Do you think that URL looks long for a Twitter post?
Yes, it does. If the URL is behind a banner ad, no one will directly see it. If it is in an email, the URL can be hidden behind link text using HTML formatting. But for a Twitter post, you will likely want to use a URL shortener.
The process is: first, create the long, well-formed, trackable URL with UTM codes and test it. Then use a tool like Bit.ly to create a shortened URL that wraps your full UTM-encoded URL inside it. After verifying that the Bit.ly link resolves correctly to your UTM URL, you can place the shortened link in the Twitter post.
How am I going to keep up with all of these links?
Spreadsheets. You can use a spreadsheet to maintain an inventory of all your URLs. Why not just look at traffic in Google Analytics? Because not all campaigns are successful — you will want an inventory of everything you have done regardless of outcome. Even more importantly, a spreadsheet of past URLs will help prompt you on the established standards for future campaigns. Note that if you are using a URL shortener, the spreadsheet should contain both the UTM-encoded URL and the corresponding shortened link.
Spreadsheets can serve an even greater function: they can help write your UTM-encoded URLs for you. The two example spreadsheets below make well-formed UTM URLs a painless, menu-driven process.
This example walks you through the process one URL at a time:
Single URL Builder Spreadsheet
This example handles multiple URLs as rows — and also serves as your audit log:
Bulk URL Builder & Audit Log Spreadsheet
⚠️ CAUTION!
URL query parameters are very important — and not just for your own web site link tracking. All the major players in internet marketing use URL query parameters for conversion tracking:
?dclid=— DoubleClick (now Google) Click Identifier?licid=— LinkedIn Click Identifier?fbclid=— Facebook Click Identifier?twclid=— Twitter Click Identifier?gclid=and?gclsrc=— Google Click Identifier?msclkid=— Microsoft / Bing Ads Click Identifier
When your CMS site developers create page redirects on your web site, those redirects must preserve URL query parameters — or you risk losing important traffic attribution data.
Comments
Post a Comment