What UTM parameters are and how Shopify uses them

By the AdZoom team · Published

UTM parameters are labels added to the end of a link that say where a visit came from. UTM tracking is reading those labels afterward, to see which email, post, or ad brought a visitor.

Shopify works with five: source, medium, campaign, term, and content. It records them on the visit and on the order that follows, so a sale can be traced back to the link that started it.

The five UTM parameters

UTM is short for Urchin Tracking Module, as Shopify's page on marketing reports spells it out. Each parameter is a name and a value joined by an equals sign, such as utm_source=newsletter. The names are fixed. The values are yours to choose.

ParameterWhat it saysExample values
utm_sourceWhere the visit came from, such as a search engine, a social app, or your newslettergoogle, facebook, newsletter
utm_mediumThe kind of marketing the link belongs tocpc, email, social
utm_campaignThe campaign, promotion, or sale the link is part ofspring_sale
utm_termThe paid keywordlinen_sheets
utm_contentWhich ad, banner, or button was clicked, when one campaign has severalblue_banner

The descriptions follow Google Analytics' page on URL builders and Shopify's page on campaigns, both read on 14 November 2026. Google's page lists four more. This article keeps to the five on Shopify's list.

Google's page says to always use source, medium, and campaign when you add parameters to a link. Term and content are there for when you need them.

A link before and after the parameters

Take a Shopify store that sells linen bedding. It emails its list about a spring sale, and the button at the top of the email leads to a duvet cover. The plain link looks like this.

https://www.example.com/products/linen-duvet-cover

The same link with UTM parameters looks like this.

https://www.example.com/products/linen-duvet-cover?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale&utm_content=header_button

PartWhat it does
?Ends the page's address and starts the parameters
utm_source=newsletterThe visit came from the store's newsletter
&Separates one parameter from the next
utm_medium=emailThe newsletter is an email
utm_campaign=spring_saleThe link belongs to the spring sale
utm_content=header_buttonThe shopper clicked the button at the top, not a link further down the same email

Google's page gives the same rules. A question mark goes before the parameters, an equals sign inside each pair, and an ampersand between pairs. The pairs can come in any order.

There is no utm_term here because no keyword is involved. The shopper lands on the same product page either way, and the labels travel with the address. If a link already contains a question mark, join your parameters to it with an ampersand, not with a second question mark.

How Shopify uses UTM parameters

Shopify reads the UTM values from the address the shopper lands on. It keeps them with the visit, and with the order when the visit leads to one. This is where you meet them afterward.

On the order

Go to Orders in your Shopify admin, click the order number, then open Conversion summary › View conversion details › View full sessions. The details of a visit can include where the shopper was referred from, the page they landed on, and the UTM parameters.

Shopify's page says the details can take up to 48 hours to appear. Some orders have none. Shopify gives three possible reasons: an app or a private browser blocked cookie tracking, the order started as a draft, or it came through a sales channel other than Online Store or Hydrogen.

In reports

Shopify's analytics fields include UTM source and UTM campaign for visits to your store. For orders there are five: Order UTM source, Order UTM medium, Order UTM campaign, Order UTM term, and Order UTM content. You can group or filter a report by any of them.

The marketing reports are Performance by marketing channel, Performance by marketing campaign, and Sales attributed to marketing. In the first two you can choose an attribution model, such as last click or first click. For why their figures and the ad platform's can differ, see why Ads Manager, Google Ads, and Shopify report different sales.

In Campaigns

Under Growth › Campaigns, Shopify can assign visits to a campaign through an auto-match rule. A rule names one or more parameters, for example utm_campaign with utm_source, and a visit has to match all of them. Shopify's page adds: "All additional parameters from the landing page are ignored."

In Shopify's own tools

Shopify Messaging tags the links in its emails by default with utm_source=shopify_email, utm_medium=email, and a utm_campaign made of the email's name and its activity ID. You change them under Apps › Messaging › Settings › UTM tracking. Visits the Shop app sends show shop_app as their UTM source in the Sessions by referrer and Sessions over time reports.

What apps receive

Shopify keeps five UTM values for each visit that leads to an order: source, medium, campaign, content, and term. Apps read those five from the order. The order does not carry the rest of the landing address, so an app reading it gets no click id such as gclid or fbclid.

AdZoom is one of those apps. It matches each order's UTM values to the ad that sent it, which is how it knows what a campaign's orders earned.

Values the ad platform fills in

On an ad you don't have to type every value. Ad platforms offer placeholders that they replace with the real value on each click. On Meta, {{ad.id}} becomes the id of the ad that was clicked. On Google Ads, {campaignid} becomes the campaign's id. Every ad or campaign then sends its own values without a separate link for each. The free UTM builder has a ready set for each platform, and the Meta guide and the Google Ads guide say where each one goes.

Mistakes that hide where a sale came from

No parameters at all

The order arrives with no UTM values. Its visit details can still list a referring source, but nothing names the campaign or the ad.

The same values on every ad

Suppose the bedding store runs three ads and types the same values into all of them, utm_campaign=spring_sale included. The ads bring 40 orders. All 40 carry the same values, so the UTM values can tell you the spring sale ads brought 40 orders and can't tell you which of the three ads brought them. One value that differs per ad fixes it. The builder's Meta preset puts the ad's id in utm_content.

One campaign spelled several ways

Shopify's analytics fields page puts a note on its UTM campaign field: "Requires consistent UTM naming conventions." Decide how you write each campaign's name before the first link goes out, and write it that way on every link.

See what each ad's orders earned.

AdZoom reads the UTM values on your Shopify orders, matches each order to the ad that sent it, and shows that ad's profit after cost of goods, shipping, and tax.

Coming soon to the Shopify App Store