Free UTM builder for Shopify stores
Pick a channel and copy UTM parameters made for a Shopify store. Each preset uses only the five values Shopify records on an order, so you can tell which campaign a sale came from.
UTM parameters for Meta ads
Set these on each ad, in Ads Manager › Ad › Tracking › URL parameters.
Ids
{{ad.id}} gives every ad its own UTM set. Orders aren't split.
utm_source={{site_source_name}} &utm_medium=paid &utm_campaign={{campaign.id}} &utm_content={{ad.id}}
Readable names
Campaign and ad set names in place of ids, so the values are names you chose. {{ad.id}} still gives every ad its own UTM set. Renaming a campaign or an ad set changes the values it sends.
utm_source={{site_source_name}} &utm_medium=paid &utm_campaign={{campaign.name}} &utm_term={{adset.name}} &utm_content={{ad.id}}
Build your own
Start from a preset, then change any field: pick a value Meta fills in on every click, or type your own text.
Start from
Your URL parameters
utm_source={{site_source_name}} &utm_medium=paid &utm_campaign={{campaign.id}} &utm_content={{ad.id}}
No field carries an id. Campaigns that send the same values have their orders split equally in AdZoom. Choose an id for one field.
No field carries an id, only names. That works while every campaign has a different name. Renaming a campaign changes its UTM values.
Every field is left out, so there is nothing to paste. Choose a value for one field.
UTM parameters for Google Ads
Set it once for the whole account, in Google Ads under Admin › Account settings › Tracking.
Ids
{campaignid} gives every campaign its own UTM set. Orders aren't split.
utm_source=google &utm_medium=cpc &utm_campaign={campaignid} &utm_term={adgroupid}{assetgroupid} &utm_content={creative}
Campaign only
The shortest set that still tells campaigns apart. It doesn't say which ad group or ad was clicked.
utm_source=google &utm_medium=cpc &utm_campaign={campaignid}
Good to know
- A final URL suffix set on a campaign, ad group, or ad replaces this one.
Build your own
Start from a preset, then change any field: pick a value Google Ads fills in on every click, or type your own text.
Start from
Your final URL suffix
utm_source=google &utm_medium=cpc &utm_campaign={campaignid} &utm_term={adgroupid}{assetgroupid} &utm_content={creative}
No field carries an id. Campaigns that send the same values have their orders split equally in AdZoom. Choose an id for one field.
Every field is left out, so there is nothing to paste. Choose a value for one field.
UTM parameters for TikTok Ads
Set these on each ad, in TikTok Ads Manager under Ad details › Destination URL › Edit › URL › Build URL parameters.
Ids
Every campaign, ad group, and creative sends its own values.
utm_source=tiktok &utm_medium=paid &utm_campaign=__CAMPAIGN_ID__ &utm_term=__AID__ &utm_content=__CID__
Readable names
Campaign and ad group names in place of ids, so the values are names you chose. __CID__ keeps the creative's id, so each creative still sends its own values. Renaming a campaign or an ad group changes the values it sends.
utm_source=tiktok &utm_medium=paid &utm_campaign=__CAMPAIGN_NAME__ &utm_term=__AID_NAME__ &utm_content=__CID__
Good to know
- Upgraded Smart+ campaigns use different macros. Check TikTok's list of dynamic values before you use these presets on one.
__ADID_V2__and__ADID_V2_NAME__, the ad's id and name, work only in upgraded Smart+ campaigns. These presets use the creative id instead.- Auto-attach, in the same panel, has TikTok fill in a set of its own: source TikTok, medium Paid, and the campaign's id and name.
AdZoom matches orders to ads for Meta and Google Ads, not for TikTok Ads. These parameters still reach the order in Shopify.
Build your own
Start from a preset, then change any field: pick a value TikTok Ads fills in on every click, or type your own text.
Start from
Your URL parameters
utm_source=tiktok &utm_medium=paid &utm_campaign=__CAMPAIGN_ID__ &utm_term=__AID__ &utm_content=__CID__
No field carries an id. Campaigns that send the same values can't be told apart on the order. Choose an id for one field.
No field carries an id, only names. That works while every campaign has a different name. Renaming a campaign changes its UTM values.
Every field is left out, so there is nothing to paste. Choose a value for one field.
UTM parameters for Pinterest Ads
Set these on the campaign: in Ads reporting, select the campaign, then URL tracking › Edit next to Parameter settings.
Ids
Every campaign, ad group, and ad sends its own values.
utm_source=pinterest &utm_medium=paid &utm_campaign={campaignid} &utm_term={adgroupid} &utm_content={adid}
Readable names
Campaign and ad group names in place of ids, so the values are names you chose. {adid} keeps the ad's id, so each ad still sends its own values. Renaming a campaign or an ad group changes the values it sends.
utm_source=pinterest &utm_medium=paid &utm_campaign={campaign_name} &utm_term={ad_group_name} &utm_content={adid}
Good to know
- Pinterest applies
utm_source,utm_medium,utm_campaign, andutm_contentof its own by default. It adds only what is missing and never overwrites UTM parameters a URL already has. - Dynamic values such as
{campaignid}are not filled in when you preview an ad, only once the ad is live.
AdZoom matches orders to ads for Meta and Google Ads, not for Pinterest Ads. These parameters still reach the order in Shopify.
Build your own
Start from a preset, then change any field: pick a value Pinterest Ads fills in on every click, or type your own text.
Start from
Your URL parameters
utm_source=pinterest &utm_medium=paid &utm_campaign={campaignid} &utm_term={adgroupid} &utm_content={adid}
No field carries an id. Campaigns that send the same values can't be told apart on the order. Choose an id for one field.
No field carries an id, only names. That works while every campaign has a different name. Renaming a campaign changes its UTM values.
Every field is left out, so there is nothing to paste. Choose a value for one field.
UTM parameters for Microsoft Advertising
Set it once for the whole account, in Microsoft Advertising under Campaigns › Settings › Account level options › Final URL suffix.
Ids
Every campaign, ad group, and ad sends its own values.
utm_source=bing &utm_medium=cpc &utm_campaign={CampaignId} &utm_term={AdGroupId} &utm_content={AdId}
Readable names
Campaign and ad group names in place of ids, so the values are names you chose. {AdId} keeps the ad's id, so each ad still sends its own values. Renaming a campaign or an ad group changes the values it sends.
utm_source=bing &utm_medium=cpc &utm_campaign={Campaign} &utm_term={AdGroup} &utm_content={AdId}
Good to know
- Microsoft Advertising can add UTM tags by itself, with auto-tagging. Set to Replace, it overwrites yours. Use Preserve, which keeps the UTM values you set, or Inactive.
- A final URL suffix set on a campaign, ad group, keyword, or ad replaces the account's. The two are not combined.
AdZoom matches orders to ads for Meta and Google Ads, not for Microsoft Advertising. These parameters still reach the order in Shopify.
Build your own
Start from a preset, then change any field: pick a value Microsoft Advertising fills in on every click, or type your own text.
Start from
Your final URL suffix
utm_source=bing &utm_medium=cpc &utm_campaign={CampaignId} &utm_term={AdGroupId} &utm_content={AdId}
No field carries an id. Campaigns that send the same values can't be told apart on the order. Choose an id for one field.
No field carries an id, only names. That works while every campaign has a different name. Renaming a campaign changes its UTM values.
Every field is left out, so there is nothing to paste. Choose a value for one field.
UTM tracking in Klaviyo
Klaviyo builds the parameters from its own settings, so there is no string to paste. Choose these in Klaviyo, under your account name › Settings › Other › UTM tracking.
- Automatically add UTM parameters to links
- Turn it on.
- Source utm_source
- A static value, such as Klaviyo or email.
- Medium utm_medium
- Message type. It sends
emailfor an email andsmsfor an SMS. - Campaign utm_campaign
- Set the Campaign value and the Flow value, each from the dynamic options Klaviyo offers for it.
Good to know
- The switch covers new campaigns and flow messages, not existing ones.
- A message with UTM values of its own, or with tracking turned off, keeps its settings when you change these.
- Shopify Email adds its own by default:
utm_source=shopify_email,utm_medium=email, and autm_campaignmade of the email's name and its activity id.
AdZoom matches orders to ads for Meta and Google Ads, not for Klaviyo. These parameters still reach the order in Shopify.
How Shopify records UTM parameters
Shopify UTM tracking in short: what Shopify keeps from a tagged link, where you find it in your admin, and what its own tools do with it.
-
Five values on the order
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 and don't get the rest of the landing address. So every preset here uses those five and nothing else.
-
Where you see them
To see them on an order, go to Orders in your Shopify admin, click the order number, then open Conversion summary › View conversion details › View full sessions. The details can take up to 48 hours to appear.
-
What reports and campaigns use
Shopify's analytics has UTM source and UTM campaign as fields for its reports. Under Growth › Campaigns, a campaign's auto-match rule combines UTM parameters, for example
utm_campaignwithutm_source, and ignores a landing page's other parameters. -
What Shopify's own channels add
Shopify Email adds its own by default:
utm_source=shopify_email,utm_medium=email, and autm_campaignmade of the email's name and its activity id. You change them under Apps › Messaging › Settings › UTM tracking. Visits the Shop app sends showshop_appas their UTM source in Shopify's session reports.
See which ads aren't tracked.
AdZoom's tracking check lists your active Meta ads that have no URL parameters, so you know where to paste these.