Free marketing tools

UTM Builder: Campaign URL Builder for GA4

Paste a landing page URL, fill in source, medium and campaign, and copy a tagged link that GA4 and your CRM will report cleanly. Existing query parameters and #anchors are kept; values are lowercased and spaces replaced unless you switch that off.

Your campaign URL

https://www.example.com/demo?utm_source=linkedin&utm_medium=paid_social&utm_campaign=q4_fintech_abm

What Each Parameter Is For

ParameterAnswersExample values
utm_sourceWhich site or sender?linkedin, google, newsletter_name, partner_domain
utm_mediumWhat type of channel?cpc, paid_social, email, referral, display
utm_campaignWhich campaign?q4_fintech_abm, webinar_2026_11
utm_termWhich keyword or audience?website_personalization, cfo_list
utm_contentWhich ad or link variant?carousel_v2, footer_link
utm_idWhich campaign ID (for cost data import)?cmp_1042

GA4 assigns traffic to its default channel groups from source and medium, so use the conventional medium values (cpc, email, referral, display, paid_social) where they fit. Home-made mediums can put paid traffic in the wrong channel, or in Unassigned when GA4 cannot match the source either.

A Naming Convention That Survives a Year

  1. Lowercase only, underscores instead of spaces.
  2. Campaign = quarter or date + audience + offer, for example q4_fintech_benchmark. You will be filtering on these in a year.
  3. Keep the list in one shared sheet and build links from it, not from memory.
  4. Never tag internal links.

How to Test Your UTM Links Before a Campaign Goes Live

A UTM test takes five minutes and catches the problems that otherwise surface three weeks later, when the campaign report shows half the clicks as Direct or Unassigned. Test every link the way a visitor will reach it: from the real ad, email or post, not only by pasting the URL into your own browser.

  1. Click the final link and read the address bar. After the page loads, the utm_ parameters should still be in the URL. If they have disappeared, a redirect stripped them: common culprits are an http to https or www redirect, a vanity URL, or a CMS rule that rewrites query strings.
  2. Check GA4 Realtime. Open Reports, then Realtime, and look at the traffic source card. Switch its dimension to source, medium or campaign and your test visit should appear within a minute or so with the values you set. If it shows as direct, the tags were lost before GA4 loaded.
  3. Use DebugView for detail. Turn on debug mode (Google Tag Manager preview, or the Google Analytics debugger browser extension), click the link, then open Admin, DebugView. Select the page_view event and check that page_location contains the full tagged URL. This also shows whether the event fired at all.
  4. Test with consent accepted and declined. If your cookie banner blocks analytics until consent, a declined visit will not appear in Realtime. That is expected behaviour, not a broken tag, but it explains part of the gap between ad clicks and GA4 sessions.
  5. Follow the conversion through. Submit a test form and check that the CRM record received the UTM values in hidden fields. Reports in GA4 can be accurate while the CRM still says "unknown source", which is where pipeline reporting breaks.
  6. Check the standard reports a day later. Realtime confirms collection; the Traffic acquisition report confirms classification. Google notes that processing can take 24 to 48 hours, so do not judge the default channel grouping on day one.

Common UTM Mistakes a Test Will Catch

What you seeLikely causeFix
Visit shows as direct / (none)Redirect dropped the query string, or the link opened in an app browser that lost itLink to the final URL, or configure the redirect to pass query parameters through
Campaign split into several rowsMixed case or spelling: LinkedIn, linkedin, linked_inLowercase everything and build links from one shared sheet
Paid traffic lands in UnassignedA medium GA4 does not recognise, such as "sponsored-post"Use conventional mediums: cpc, paid_social, email, display, referral
Page loads at the wrong section or 404sThe #anchor was placed before the ? query stringQuery string first, anchor last; the builder above orders them for you
Organic visitors credited to an old campaignUTM links on internal pages or in a site bannerRemove UTMs from internal links

If tracking problems run deeper than one link, the tracking QA step in our CRO audit process walks through checking every conversion event, and our explainer on GA4 sessions and engaged sessions covers how GA4 counts the visits your tagged links produce.

Using UTMs Beyond Reporting

The same tags that feed reports can drive the page itself. A visitor arriving with utm_campaign=q4_fintech_abm should land on a page that speaks to fintech, not on the generic homepage. Our guide to buyer intent keywords shows how to carry the ad group's intent into the URL, and dynamic website content covers swapping headlines and proof on that signal. Once traffic arrives, measure what each campaign was worth with the conversion rate calculator and the cost per lead calculator.

Frequently Asked Questions

What are UTM parameters?

Tags added to the end of a URL (utm_source, utm_medium, utm_campaign, and optionally utm_term, utm_content and utm_id) that tell analytics tools where a visit came from. GA4 reads them into the session source, medium and campaign dimensions.

Which UTM parameters are required?

Set source, medium and campaign on every link. Reports group traffic by those three, and GA4 uses source and medium to assign the default channel. Term and content are optional and most useful for paid search keywords and ad variants.

Are UTM parameters case sensitive?

Yes. GA4 treats "LinkedIn" and "linkedin" as two different sources, which splits one campaign into several rows. Pick lowercase and stick to it; the builder does this for you by default.

How do I test if my UTM parameters are working?

Click the final link from the real ad or email, confirm the utm_ values are still in the address bar after any redirect, and watch for your visit in GA4's Realtime report with the source, medium and campaign you set. For event-level detail, use DebugView with debug mode on. Check the Traffic acquisition report a day or two later to confirm the channel grouping.

Should I use UTM parameters on internal links?

No. A UTM on a link from your own blog to your pricing page starts a new session attribution and overwrites where the visitor really came from. Use UTMs only on links that point to your site from somewhere else.

Can I personalize a landing page based on UTM parameters?

Yes. UTM values are available the moment the page loads, so they are one of the most reliable personalization signals: an ad for a fintech audience can carry utm_content=fintech and the landing page can swap the headline and proof to match.

More free tools