Skip to main content

UTM builder and campaign URL generator

A UTM link is your normal link with tags on the end that tell analytics where a visit came from. Enter your page and pick where the link goes. You'll get a tagged link to copy, and GA4's channel rules lit up to show which one your traffic lands in. For a whole campaign, paste a list of URLs or drop a CSV, and download every tagged link at once.

Where the link goes

Your tagged link

https://yourstore.com/products/glow-serum

Add your page URL to copy the full link.

Where GA4 counts it

Pick where the link goes, or type a source and medium, to see the channel.

Find trends in your business for free. Ask a question about your store and Replo answers it from every tool you connect.

GA4 default channel rules, checked in this order
ChannelRule
1DirectSource is (direct) and medium is (not set) or (none)
2Cross-networkCampaign name contains cross-network
3Paid ShoppingSource is a shopping site or campaign name matches shop/shopping, and medium matches ^(.*cp.*|ppc|retargeting|paid.*)$
4Paid SearchSource is a search site and medium matches the paid pattern
5Paid SocialSource is a social site and medium matches the paid pattern
6Paid VideoSource is a video site and medium matches the paid pattern
7DisplayMedium is display, banner, expandable, interstitial or cpm
8Paid OtherMedium matches the paid pattern, with any other source
9Organic ShoppingSource is a shopping site or campaign name matches shop/shopping
10Organic SocialSource is a social site, or medium is social, social-network, social-media, sm, social network or social media
11Organic VideoSource is a video site, or medium contains video
12Organic SearchSource is a search site, or medium is exactly organic
13AI AssistantMedium is exactly ai-assistant
14ReferralMedium is referral, app or link
15EmailSource or medium is email, e-mail, e_mail or e mail
16AffiliatesMedium is affiliate
17AudioMedium is exactly audio
18SMSSource or medium is exactly sms
19Mobile Push NotificationsMedium ends with push or contains mobile or notification, or source is firebase

From Google’s default channel group rules. GA4 matches source against its own lists of search, social, shopping and video sites; this checks the common ones, such as google, facebook, instagram, tiktok, youtube and amazon. Google Ads traffic with auto-tagging is grouped by campaign type instead.

How to read your number

A UTM link is a normal URL with tags on the end that tell analytics where a visit came from. yourstore.com/products/glow-serum with source facebook, medium paid_social, campaign spring-launch and content video-1 becomes https://yourstore.com/products/glow-serum?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring-launch&utm_content=video-1. GA4 puts it in Paid Social, because facebook is a social site and paid_social matches its paid-medium pattern.

Why it matters

GA4 sorts visits into channels by source and medium alone. Tag a Meta ad with medium "ads" and it lands in Unassigned, not Paid Social, so your paid social numbers come up short and the campaign looks worse than it is. Checking the channel before launch keeps every report right from the first click.

Every morning

Get your UTM in a daily report

Replo reads Google Analytics 4, Meta, Google Ads and Klaviyo and has your UTM ready every morning, with what changed since yesterday and why.

Formula

Tagged URL = page URL ? utm_source = … & utm_medium = … & utm_campaign = …

Source is who sent the visit (facebook, google, klaviyo). Medium is the kind of traffic (paid_social, cpc, email). Campaign is your name for the push (spring-launch). Content and term are optional, for telling ads or keywords apart. Values are case sensitive, so use lowercase.

New to the term? Read what UTM parameters means in the glossary.

Other ways to calculate UTM builder and campaign URL generator

Paid social
utm_source=facebook (or instagram, tiktok, pinterest) & utm_medium=paid_social
Any paid social ad. Any medium containing cp, or starting with paid, works; paid_social reads clearest.
Paid search
utm_source=google (or bing) & utm_medium=cpc
Search ads without auto-tagging. Google Ads with auto-tagging on (gclid) is grouped by campaign type, so you don't need UTMs there.
Email and SMS
utm_source=klaviyo & utm_medium=email (or sms)
Every email or text link. The medium must be exactly email or sms for GA4 to group it.
Organic social
utm_source=instagram & utm_medium=social
Bio links and unpaid posts, so they don't mix with paid social.
Creators and affiliates
utm_source=creator-name & utm_medium=affiliate
One source per creator, so you can see each one's sales.

What are UTM parameters?

UTM parameters are five tags you add to a link: utm_source, utm_medium, utm_campaign, utm_content and utm_term. Google recommends always using source, medium and campaign, plus utm_id when you have a campaign ID.

When someone clicks the link, GA4 and most store analytics read the tags and credit the visit, and any order, to that source and campaign. Without them, a click from an Instagram story or an email can show up as Direct or Referral.

How GA4 picks a channel

GA4 checks a fixed list of rules in order and uses the first that matches. Most rules look at whether the source is on Google's list of search, social, video or shopping sites, and whether the medium looks paid: it matches the pattern **^(.*cp.*|ppc|retargeting|paid.*)$**, so cpc, cpm, ppc, paid and paid_social all count.

So facebook / paid_social is Paid Social, facebook / social is Organic Social, and facebook / ads is Organic Social too, because "ads" isn't a paid medium to GA4. The full rule list is in the table under the builder.

How to calculate UTM builder and campaign URL generator: a worked example

A skincare brand is launching a Meta video ad for its serum page, yourstore.com/products/glow-serum.

  • Source: facebook, the site sending the traffic
  • Medium: paid_social, which matches GA4's paid pattern
  • Campaign: spring-launch; content: video-1 to tell this ad from the others
  • Link: https://yourstore.com/products/glow-serum?utm_source=facebook&utm_medium=paid_social&utm_campaign=spring-launch&utm_content=video-1

GA4 counts these visits as Paid Social, and the campaign and ad show up as spring-launch and video-1 in the traffic acquisition report.

UTM naming rules that keep reports clean

Lowercase everything. GA4 treats Facebook and facebook as different sources. Use dashes, not spaces: spaces become %20. Write one list of sources and mediums for your team and stick to it; a report is only as clean as its least careful link.

In Meta Ads Manager, put the tags in the URL parameters field and let Meta fill in names with dynamic parameters such as {{campaign.name}} and {{ad.name}}, so every ad is tagged without typing each one. The Meta preset above does this.

Questions about UTM builder and campaign URL generator

What are UTM parameters?
UTM parameters are tags added to the end of a link that tell analytics where a visit came from: utm_source (who sent it), utm_medium (the kind of traffic), utm_campaign (your name for the push), and optionally utm_content, utm_term and utm_id. GA4 reads them to put each visit in a channel.
What is a UTM builder?
A UTM builder adds tracking tags to a link, such as utm_source=facebook and utm_medium=paid_social, so analytics can credit visits and orders to the right channel and campaign. This one also shows which GA4 channel the tags land in, and tags a whole list of links at once from a paste or a CSV.
What should utm_medium be for Facebook ads?
Use paid_social, or any medium starting with paid or containing cp, such as cpc. GA4 then counts the visits as Paid Social. A medium like "ads" or "facebook_ads" doesn't match, so the visits land in Organic Social or Unassigned.
Are UTM parameters case sensitive?
Yes. GA4 treats utm_source=Facebook and utm_source=facebook as two different sources, so your numbers split across two rows. Use lowercase for every value.
Do I need UTMs on Google Ads?
Not if auto-tagging is on. Google Ads adds a gclid to each click, and GA4 groups that traffic by campaign type. Add UTMs only when you send Google Ads traffic to a tool that can't read gclid.
Why is my traffic showing as Unassigned in GA4?
Usually because the source and medium don't match any default channel rule, such as medium=ads or medium=influencer. Pick a medium GA4 knows: paid_social, cpc, email, social, referral or affiliate.

Sources

Do it with Replo

See every campaign's sales, tagged or not

Replo reads your store's orders and traffic, then reports sales by source and campaign on the schedule you set.

Prompt: “send me sales by utm source and campaign every week”

More free calculators

Browse all tools