What are UTM tags?
UTM tags are short labels at the end of a link. They tell GA4 where a visit came from: the source (for example facebook), the medium (for example paid_social) and the campaign. Without them, visits from email, print and many apps often show up as direct traffic, and you cannot tell campaigns apart.
| Tag | What it says |
|---|---|
utm_source | Where the visit comes from: facebook, google, newsletter, qr. |
utm_medium | The type of traffic: paid_social, cpc, email, social, print. GA4 uses it to pick the channel. |
utm_campaign | The campaign, offer or promotion: autumn_sale. |
utm_id | The campaign ID. You need it when you import cost data from other platforms into GA4. |
utm_content | Which ad or link was clicked: video_a, header_button. |
utm_term | The keyword, or another detail you want to track, such as the audience. |
Google says to always use source, medium and campaign. Values you leave out show as (not set) in GA4.
How to name campaigns
- Lowercase only. GA4 values are case sensitive. Facebook and facebook land in the same channel, but show up as two different sources in your reports.
- One separator. Pick underscore or hyphen and use it everywhere. autumn_sale, Autumn Sale and autumn-sale are three different campaigns to GA4.
- A fixed order in campaign names, for example year, month, offer and audience: 2026_10_autumn_sale_new.
- One shared list of sources and mediums, so everybody on the team writes facebook and not fb, Facebook or meta.
- Medium decides the channel. Use mediums that GA4 knows: paid_social or cpc for paid ads, social for unpaid posts, email for newsletters, referral for links from partner sites.
- Content for the version, term for the detail. Put the ad or link version in utm_content (video_a, carousel_b) and the keyword or audience in utm_term.
How GA4 picks the channel
GA4 sorts manually tagged visits into channels by source, medium and campaign name. Paid mediums are those that contain cp, are exactly ppc or retargeting, or start with paid. For paid traffic the source matters too: facebook, instagram, tiktok and linkedin are on Google's list of social sites, google is on the list of search sites.
| Medium | Channel |
|---|---|
paid_social, cpc, ppc | Paid Social, Paid Search or Paid Video when the source is on Google's list, otherwise Paid Other |
display, banner, cpm | Display |
social, sm, social-media | Organic Social |
organic | Organic Search |
email | |
referral, link, app | Referral |
affiliate | Affiliates |
sms | SMS |
print, offline and anything else | Unassigned, unless the source decides it |
The channel shown in the tool follows the rules Google publishes. Google does not publish the order for the default group, so we follow the order of its table. Two details can change the result: a campaign name with cross-network goes to Cross-network, and a campaign name with shop or shopping can go to a shopping channel. If you need a channel for print, create a custom channel group in GA4.
Dynamic parameters
Ad platforms can fill in values when the ad runs. Put them in the platform's field for URL parameters, not in the website address, and check the result in the ad preview. Links with dynamic values work only inside that platform, so they are not for QR codes or emails.
Meta (Facebook, Instagram, Threads)
| Parameter | Becomes |
|---|---|
{{campaign.name}} | campaign name |
{{campaign.id}} | campaign ID |
{{adset.name}} | ad set name |
{{adset.id}} | ad set ID |
{{ad.name}} | ad name |
{{ad.id}} | ad ID |
{{placement}} | placement, for example facebook_feed, instagram_stories or threads_stream |
{{site_source_name}} | fb, ig, msg (Messenger), an (Audience Network) or th (Threads) |
Names are taken as they were when the ad was first published. Renaming the campaign later does not change the link, and spaces in names become %20. Tags in the URL parameters field replace the same tags in the website URL. Only fb and ig are on Google's list of social sites, so visits with msg, an or th and a paid medium land in Paid Other.
Source: Meta Business Help, dynamic URL parameters and URL parameters in Ads Manager. Checked in October 2026.
TikTok
| Parameter | Becomes |
|---|---|
__CAMPAIGN_NAME__ | campaign name |
__CAMPAIGN_ID__ | campaign ID |
__AID_NAME__ | ad group name |
__AID__ | ad group ID |
__CID_NAME__ | creative name |
__CID__ | creative ID |
__PLACEMENT__ | placement, TikTok or TikTok Pangle |
TikTok can add UTM tags by itself with the URL Auto-attach option at ad level. Ad links cannot contain #, and everything after it is dropped.
Source: TikTok Ads Help, UTM parameters and UTM best practices. Checked in October 2026.
Google Ads (ValueTrack)
| Parameter | Becomes |
|---|---|
{campaignid} | campaign ID |
{adgroupid} | ad group ID |
{creative} | ad ID |
{keyword} | the keyword that matched |
{matchtype} | match type: e exact, p phrase, b broad |
{network} | network: g search, s search partners, d Display, ytv YouTube, x Performance Max |
{device} | device: m mobile, t tablet, c computer |
{placement} | the site where the ad was clicked, for Display |
There is no ValueTrack parameter for the campaign name, so type it yourself. Performance Max does not fill {adgroupid}, {creative}, {keyword}, {matchtype} and {placement}. Put the tags in the final URL suffix. Most of all, keep auto-tagging on: it adds gclid, and when a link has both, GA4 takes source, medium and campaign from auto-tagging. Google says there is no option to let UTM tags override it. utm_content and utm_term still show up in GA4.
Source: Google Ads Help on ValueTrack parameters and auto-tagging, Performance Max, and Google Analytics Help on manual and auto-tagging. Checked in October 2026.
Common mistakes
- Tags after the # part. The tags belong in the query, before #. The tool puts them there for you. TikTok drops everything after #, and Google's own URL builder marks the fragment option as not recommended.
- Capital letters and spaces. They split one campaign into several rows. The tool converts them for you.
- Tags on links inside your own site. UTM tags describe where a visitor came from, so use them only on links that bring people in from outside.
- UTM instead of auto-tagging in Google Ads. Keep auto-tagging on and treat UTM tags as an extra.
- Personal data in tags. Never put email addresses, names or phone numbers in a link. Links get shared, saved and stored in reports.
- Dynamic values in the wrong place. {{campaign.name}} works only inside Meta, __CAMPAIGN_NAME__ only inside TikTok. In an email or on a flyer they stay as plain text.
FAQ
Do I need UTM tags for Google Ads?
Usually not. Keep auto-tagging on, because GA4 takes source, medium and campaign from it even when the link also has UTM tags. UTM tags still help other tools, for example a CRM that reads them from the link.
Which tags are required?
Google says to always use utm_source, utm_medium and utm_campaign. utm_id is worth adding when you import cost data from other platforms. Content and term are optional.
Why are my visits in Unassigned?
Because the medium does not match any GA4 rule, for example print or flyer, or because a paid medium has a source GA4 does not know. Check the channel the tool shows and use mediums from the table above. For print you can create your own channel in GA4.
Where do I paste the tags in Meta Ads Manager?
In the ad, in the URL parameters field. Paste only the tags from the second box, without the website address. Meta adds them to the link, and they replace the same tags in the website URL.
Where is my history saved?
Only in this browser, in localStorage. The tool keeps the last 20 links you copy. You can delete them one by one or all at once, and nothing is sent anywhere.
Sources: Google Analytics Help on UTM parameters, default channel group and custom channel groups, and the Campaign URL Builder. Checked in October 2026.
The tool runs in your browser and sends nothing. Copied links are saved only in this browser (localStorage) until you delete them.