UTM Builder: Campaign URL Builder for GA4

Build UTM tracking links for GA4 with presets, naming checks, a predicted channel, a QR code and bulk CSV export.

UTM builder

Quick presets
Campaign values
More GA4 parameters

Google says creative format and marketing tactic are not currently shown in GA4 reports, but they are kept in the URL.

Your tracking link
Test link

Runs in your browser. Links and history stay on this device. Keep one naming style for every campaign so GA4 does not split the same source into two rows.

In short

Paste the page URL, pick a preset such as Instagram bio, Email newsletter or TikTok ad, and set the campaign name. The builder adds utm_source, utm_medium, utm_campaign and optional utm_content, utm_term and utm_id, shows which GA4 channel the visit will land in, and gives you a QR code. Switch to Many links to tag up to 500 URLs and download a CSV.

On this page
  1. How to build a UTM link
  2. What each UTM parameter means
  3. How GA4 decides the channel
  4. Worked examples
  5. How the builder formats your link
  6. A campaign plan in UTM tags
  7. What each preset fills in
  8. Where to find UTM data in GA4
  9. UTM naming conventions that keep reports clean
  10. UTM tags with short links and redirects
  11. When not to use UTM tags
  12. Troubleshooting

Google Analytics can tell you that a visit came from instagram.com, but not whether it came from your bio link, a story, an influencer or a paid ad. UTM parameters fix that. They are short tags added to the end of a link, such as utm_source=instagram, utm_medium=social and utm_campaign=fall-launch-2026, and GA4 reads them to label the visit and every sale that follows.

This builder makes those links correctly every time: consistent lowercase values, no broken query strings, a preview of the GA4 channel the visit will be grouped into, a QR code for print, and a bulk mode for tagging a whole product list at once.

  1. Paste the page you want people to land on into Website URL. Existing parameters such as ?variant=123 and any #anchor are kept.
  2. Click a Quick preset to fill source, medium and content, or type them yourself. Presets include Instagram bio, Instagram or Facebook ad, Facebook post, TikTok ad, Pinterest pin, YouTube description, Email newsletter, SMS, Affiliate or partner, Influencer, QR code on packaging and Microsoft Ads.
  3. Enter the Campaign name, such as spring-sale-2026. Source, medium and campaign are the three you should always fill in.
  4. Optional: add Content to tell two links or ads apart, Term for a paid keyword, and Campaign ID if you import cost data. More GA4 parameters adds source platform, creative format and marketing tactic.
  5. Keep Make values lowercase on and choose what replaces spaces (hyphen by default).
  6. Read the Predicted GA4 channel badge and any warnings, then click Copy link. Use Test link to open it, Download QR for print, and Save to history to keep it in this browser.

What each UTM parameter means

ParameterAnswersExample values
utm_sourceWho sent the visit?instagram, facebook, newsletter, tiktok, partner-name
utm_mediumWhat type of channel?social, paid_social, email, cpc, affiliate, qr_code
utm_campaignWhich promotion?fall-launch-2026, black-friday-2026
utm_contentWhich link, creative or placement?bio-link, header-button, video-a
utm_termWhich paid keyword?linen throw
utm_idCampaign ID for cost data importfl26
utm_source_platformWhich platform directed the traffic?shopify, klaviyo
utm_creative_format, utm_marketing_tacticCreative type and targetingreel, retargeting

Google's own documentation notes that utm_creative_format and utm_marketing_tactic are not currently reported in GA4 properties. The builder keeps them in the URL for other tools that read them, and tells you so under More GA4 parameters.

How GA4 decides the channel

GA4 sorts every visit into a default channel group, such as Organic Social, Paid Social, Email or Referral, using rules based on source and medium. If your values do not match any rule, the visit lands in Unassigned, which makes channel reports useless. The builder applies a simplified version of Google's published rules and shows the result as you type. A few that matter most:

  • Email: source or medium is exactly email, e-mail, e_mail or "e mail". A source of newsletter with medium email works.
  • Paid Social: a social source (facebook, instagram, tiktok, pinterest and others) plus a paid medium. GA4's paid mediums are anything containing cp (such as cpc), ppc, retargeting, or anything starting with paid, so paid_social qualifies.
  • Organic Social: a social source, or a medium of social, social-network, social-media or sm.
  • Affiliates: medium is exactly affiliate.
  • SMS: source or medium is exactly sms.
  • Display: medium is display, banner, expandable, interstitial or cpm.

There is no QR code channel. The QR code on packaging preset uses medium qr_code, and the builder warns that these visits land in Unassigned; you will find them by filtering Traffic acquisition by that source. If you want them counted under another channel, choose a medium that matches its rule.

Warning: UTM values are case sensitive. Google's documentation gives the example that utm_source=google is different from utm_source=Google, so "Facebook" and "facebook" become two separate rows. Keep Make values lowercase on and use one naming style for every campaign.

Worked examples

An email newsletter button

URL https://harborlane.com/products/tray?color=oak#reviews, source newsletter, medium email, campaign fall-launch-2026, content header-button. The builder keeps ?color=oak, adds the four tags after it with & between them, and keeps #reviews at the very end, where anchors must go. The finished link is 149 characters and the predicted channel is Email.

Two Instagram ads in one campaign

Click the Instagram or Facebook ad preset (source facebook, medium paid_social), campaign fall-launch-2026, and set content to video-a for the first ad and video-b for the second. The channel is Paid Social, and in GA4 you can compare the two ads by the Session manual ad content dimension.

Tagging a product list for an influencer

Switch to Many links, paste 20 product URLs, set source creator-name, medium social, campaign creator-launch-2026 and content story. Click Download CSV to get a sheet with the original URL, the tracking URL and each UTM value, ready to send to the creator.

A flyer at a market stall

Use the QR code on packaging preset, change source to flyer and campaign to summer-market-2026, then click Download QR. For a styled code with your logo, paste the same tracking link into our QR code generator.

Small formatting slips are the most common reason UTM data ends up split or broken, so the builder handles them for you:

  • Values are trimmed and, with the default setting, lowercased.
  • Spaces become hyphens, underscores, or %20 if you choose to keep them. The link never contains a raw space.
  • Other special characters are percent-encoded, so an ampersand or a question mark inside a value cannot break the query string.
  • The parameters are added after any existing ones, in the order source, medium, campaign, ID, term, content, then the extra GA4 parameters, and before any #anchor.
  • Old utm_ parameters already in the URL are removed first, so a link never carries two sources.
  • If the URL has a gclid from Google Ads, you get a warning, because GA4 uses the gclid and ignores manual source and medium.

The character count next to the channel badge tells you how long the link is. Very long links are fine in emails and ads, but they make QR codes denser, which is worth knowing before you print.

A campaign plan in UTM tags

Here is how a small store might tag a Black Friday campaign so every channel can be compared in one report:

Placementutm_sourceutm_mediumutm_campaignutm_content
Early access emailnewsletteremailblack-friday-2026early-access
Main sale emailnewsletteremailblack-friday-2026main-sale
Instagram story linkinstagramsocialblack-friday-2026story
Meta ad, videofacebookpaid_socialblack-friday-2026video-a
TikTok adtiktokpaid_socialblack-friday-2026ugc-1
SMS blastsmssmsblack-friday-2026reminder

One campaign name ties it all together. In GA4, filter by that campaign to see the total, then break it down by source, medium or content to see which placement sold the most.

What each preset fills in

Presets set source, medium and content. The campaign name is always yours. This is where each preset lands in GA4's default channels:

PresetSourceMediumPredicted channel
Instagram bioinstagramsocialOrganic Social
Instagram or Facebook adfacebookpaid_socialPaid Social
Facebook postfacebooksocialOrganic Social
TikTok adtiktokpaid_socialPaid Social
Pinterest pinpinterestsocialOrganic Social
YouTube descriptionyoutubevideoOrganic Video
Email newsletternewsletteremailEmail
SMSsmssmsSMS
Affiliate or partnerpartner-nameaffiliateAffiliates
Influencercreator-namesocialOrganic Social
QR code on packagingpackagingqr_codeUnassigned
Microsoft AdsbingcpcPaid Search

Replace partner-name and creator-name with the real partner or creator, in lowercase, so each one gets its own row in reports. Change the content value too when one partner posts in several places.

Where to find UTM data in GA4

  1. Open Google Analytics and go to Reports > Acquisition > Traffic acquisition.
  2. Click the dropdown above the first column and choose Session source / medium to see rows such as newsletter / email, or Session campaign to compare campaigns.
  3. Add a secondary dimension with the plus icon, such as Session manual ad content, to split a campaign by utm_content.
  4. Use the date picker to cover the campaign period, and check the key events and revenue columns to see sales, not only visits.

New data can take a day or so to appear in standard reports. To confirm a link works right away, open it yourself and check the Realtime report for your source.

UTM naming conventions that keep reports clean

  1. Lowercase everything and use hyphens instead of spaces.
  2. Name sources after the site or partner (instagram, not ig or Insta).
  3. Pick a short list of mediums and never improvise: social, paid_social, email, cpc, affiliate, sms, qr_code, video.
  4. Put the year in campaign names so this year's sale is not merged with last year's.
  5. Use utm_content for the variation, not a new campaign name.
  6. Keep a shared sheet of the values your team uses. The builder's history (last 15 links, this browser only) helps you reuse exact values.

If you use a link shortener or a redirect, the UTM tags must reach the final page. Put the tags on the destination URL before you shorten it, not on the short link. Then test the short link: open it, look at the address bar on the landing page, and confirm the utm_ parameters are still there. Some redirects, such as a store redirecting http to https or an old product URL to a new one, can drop the query string. Our redirect checker shows each hop and the final URL, so you can see whether the parameters survive.

When not to use UTM tags

  • Internal links on your own site. Tagging a banner on your homepage replaces the visitor's real source with your internal tag, so sales get credited to your own homepage instead of the ad or post that brought them. Use GA4 events for internal clicks.
  • Google Ads with auto-tagging. Auto-tagging adds a gclid and gives GA4 more detail than manual tags. If a link already has a gclid, the builder warns that GA4 uses it and ignores your source and medium.
  • Organic search. You cannot tag Google's organic results; GA4 identifies them automatically. To see where your pages rank in Google, use a rank tracker instead.

Troubleshooting

"That URL does not look right"

Check for spaces or missing characters in the address. If you leave out https://, the builder adds it; it still needs a domain such as yourstore.com.

My old UTM values disappeared from the link

If the URL already had utm_ parameters, they are replaced with your new values, and a message lists which ones. This avoids links with two conflicting sources.

Visits show as (not set) or Unassigned in GA4

Fill in source, medium and campaign on every link, and check the predicted channel before copying. Unassigned usually means the medium does not match any rule.

Two team members tagged the same campaign differently

GA4 cannot merge them after the fact, so the numbers stay split in standard reports. Agree on the values, share the builder's CSV or a shared sheet, and use the presets so everyone starts from the same source and medium.

Instagram shortens or breaks my link

Instagram bios accept links, but captions do not make them clickable. Put the tagged link in the bio or a link sticker in stories.

UTM tags measure the traffic you send. For the traffic Google sends you from search, AM Jarvis Rank Tracker tracks your keyword positions daily with history and drop alerts. Our free keyword rank checker gives a one-off check, and the website SEO checker reviews the landing pages your tagged links point to.

Frequently asked questions

What is a UTM link?

A UTM link is a normal URL with tracking tags added to the end, such as utm_source, utm_medium and utm_campaign. The page works the same for the visitor, but Google Analytics reads the tags and records where the visit came from, so you can see which post, email or ad drove traffic and sales.

Which UTM parameters are required?

Technically only utm_source is needed for GA4 to attribute a visit, but you should always fill in source, medium and campaign. Without medium and campaign, reports show (not set) and channels are often Unassigned. Content, term and ID are optional.

Are UTM parameters case sensitive?

Yes. GA4 treats Facebook and facebook as two different sources, which splits your reports. Keep the Make values lowercase option on, and agree on one spelling for each source and medium across your team.

Do UTM tags affect SEO?

Not when used as intended on links you share in social posts, emails and ads. Do not use them on internal links within your own site, where they overwrite the real traffic source. Your pages should have a canonical tag pointing to the clean URL, which most store platforms add automatically.

Why does my UTM traffic show as Unassigned in GA4?

The source and medium combination did not match any GA4 default channel rule. For example, medium qr_code or print has no channel. Use the predicted channel badge in the builder to pick values that land where you want, such as email, social or paid_social.

Should I use UTM tags on Google Ads links?

Usually not. Google Ads auto-tagging adds a gclid parameter that gives GA4 richer data, and GA4 uses it instead of manual source and medium. Use manual UTM tags for Microsoft Ads, Meta, TikTok, email, influencers and offline campaigns.

Can I create UTM links in bulk?

Yes. Open Many links, paste up to 500 URLs one per line, and set the campaign values once. Copy all the tagged links or download a CSV with the original URL, tracking URL and each UTM value in its own column.