UTM best practices start with three fields on every manually tagged link: utm_source, utm_medium, and utm_campaign. Keep their values lowercase, choose them from a shared naming sheet, and test the final URL before anyone spends money or prints a QR code.
Build the first link with the UTM builder, then save this pattern for the team:
https://example.com/guide?utm_source=newsletter&utm_medium=email&utm_campaign=reading-guide-families-us-202608&utm_content=top-button
Google's current custom campaign URL guide says source, medium, and campaign should accompany tagged destination URLs. Those fields answer where the click came from, what kind of channel carried it, and which initiative deserves the credit.
The 17-point UTM checklist
Use this before launch. A link can open perfectly while still sending untidy data into GA4, which is why checking the page alone is only half the job.
1. Tag inbound campaign links
Add UTMs to links that bring people from an identifiable campaign into your site:
- A newsletter button
- Paid social ads, when manual tags are part of the measurement plan
- Partner articles and affiliate placements
- A poster or package insert with a QR code
- Organic social posts that need campaign-level reporting
Skip routine links between pages on your own website. Internal UTMs inject campaign labels into a journey that has already arrived, making acquisition reports harder to interpret. Use events, link text, page paths, or content groups to study internal navigation.
2. Include source, medium, and campaign together
Partial tagging creates holes such as (not set) in reports. Use this minimum set:
| Parameter | Question it answers | Example |
|---|---|---|
utm_source | Who or what sent the click? | newsletter, linkedin, google |
utm_medium | What channel type carried it? | email, social, cpc |
utm_campaign | Which coordinated effort was it? | reading-guide-families-us-202608 |
Google also supports utm_id and utm_source_platform, and recommends filling all relevant campaign parameters when your reporting setup uses them. utm_term and utm_content add useful detail. Two newer fields, utm_creative_format and utm_marketing_tactic, appear in Google's parameter list but are not currently reported in GA4 properties, according to the same Analytics documentation.
3. Adopt one UTM naming convention
Use a formula people can follow on a hurried Thursday afternoon:
utm_campaign=[initiative]-[audience]-[geo]-[yyyymm]
For example:
reading-guide-families-us-202608
The fields have jobs. reading-guide identifies the initiative, families is the audience, us is the market, and 202608 keeps a recurring campaign distinct without relying on a vague label such as august-promo.
Do not add a field merely because it exists. If nobody filters by objective or geography, leave it out. Long names invite truncation, typos, and creative abbreviations.
4. Use lowercase values
GA4 treats Newsletter, newsletter, and NEWSLETTER as distinct dimension values. Lowercase removes that choice at creation time.
Google's URL builder guidance explicitly notes that parameter values are case-sensitive. Channel-group rules have their own matching logic, but separate source or campaign rows can still fragment day-to-day reports.
Lowercase the values. Keep the parameter keys in their standard lowercase form too.
5. Pick one separator
This convention uses hyphens inside multiword values:
teacher-resources-us-202608
Underscores also work. Switching between teacher-resources and teacher_resources creates two campaign values, so consistency matters more than the choice.
Spaces do not inherently break modern URLs. They are encoded, often as %20 or +, which makes links and raw reports harder to scan. The URL encoder is useful when a value contains characters you cannot simplify, while the UTM builder handles query encoding for ordinary campaigns.
6. Lock a controlled list of sources
utm_source should identify the specific platform, publisher, list, or referring partner. Pick one approved spelling for each.
| Traffic origin | Approved source |
|---|---|
| Google Ads | google |
| Microsoft Advertising | bing |
linkedin | |
instagram | |
| Monthly newsletter | newsletter |
| A named partner | partner-name |
Avoid having facebook, fb, and meta mean the same placement. Google's current recommendation is one unique source value for each distinct platform, including separate values for sub-platforms where that distinction matters.
7. Choose mediums that GA4 can classify
The medium describes the channel type. It should remain stable when the source changes.
These UTM medium examples cover common campaigns:
| Campaign | utm_source | utm_medium | Likely GA4 default channel |
|---|---|---|---|
| Newsletter | newsletter | email | |
| Google search ad | google | cpc | Paid Search |
| LinkedIn organic post | linkedin | social | Organic Social |
| LinkedIn paid ad | linkedin | paid-social | Paid Social |
| Display banner | publisher-name | display | Display |
| Affiliate link | partner-name | affiliate | Affiliates |
| Editorial partner link | partner-name | referral | Referral |
| Text message | sms | sms | SMS |
GA4's default channel definitions use source and medium rules to classify manual traffic. A social source paired with a medium containing paid, cpc, ppc, or retargeting can qualify as Paid Social. Mediums outside the rules may land in Unassigned.
An offline QR campaign is a deliberate edge case. A medium such as qr or print expresses the truth, though it may require a custom channel group. Do not call a printed card email simply to make it enter a familiar default channel.
8. Keep one campaign name across channels
The same initiative should share its utm_campaign value in email, paid social, partner links, and organic posts.
utm_campaign=reading-guide-families-us-202608
Source and medium already separate the channels. Renaming the campaign to email-reading-guide on one link and social-reading-guide on another breaks the clean cross-channel total you wanted.
9. Use content for creative and placement
utm_content distinguishes links that share the same source, medium, and campaign. Describe the element a person clicked:
top-button- A specific card, such as
lesson-plan-card text-link-2when the same email contains a second contextual link- Version labels can work, but
blue-buttonbecomes confusing after a redesign. Prefer the message or placement.
Google defines utm_content as a way to differentiate creatives. Keep the label stable when the same creative appears in several placements, or include both concepts with a documented order.
10. Reserve term for paid keyword detail
utm_term was designed for paid keywords. An example is utm_term=reading-worksheets.
You can use it for another targeting dimension if every analyst agrees, but write that decision into the convention. Otherwise one team stores audiences there, another stores search terms, and the column stops having a dependable meaning.
For Google Ads, the ValueTrack {keyword} parameter returns the account keyword that matched. It can be blank for keywordless traffic such as Dynamic Search Ads, AI Max keywordless matches, and Performance Max, as explained in Google's ValueTrack reference.
11. Keep names, email addresses, and secrets out
UTMs are visible in browser address bars, link previews, analytics systems, server logs, and copied messages. Never put an email address, phone number, customer ID, access token, or private audience record in them.
Google's PII policy for Analytics implementations specifically warns against personally identifiable information in utm_source, utm_medium, utm_term, utm_campaign, and utm_content.
Use broad segment labels such as new-subscribers. Even then, consider whether the label reveals something sensitive when a recipient forwards the link.
12. Preserve existing query parameters and fragments
A destination may already look like this:
https://example.com/course?level=beginner#lesson-2
The UTM fields belong after the existing query parameter and before the fragment:
https://example.com/course?level=beginner&utm_source=newsletter&utm_medium=email&utm_campaign=course-launch-adults-us-202608#lesson-2
Do not add a second question mark. Let a URL-aware builder handle the assembly, particularly when the destination includes filters, language settings, or encoded values.
13. Check every redirect
Shorteners, affiliate systems, consent routes, and server redirects sometimes discard query parameters. Paste the finished campaign URL into a private browser window and watch the address bar through the final landing page.
Confirm that:
- The intended page loads without an error.
- All UTM values reach the final URL.
- The fragment still jumps to the right section, if one exists.
- No redirect changes the source, medium, or campaign value.
Google makes the same point for its click identifier: redirects must pass the GCLID to the landing page for Google Ads conversion tracking to work. UTM parameters need the same end-to-end attention.
14. Keep Google Ads auto-tagging on
For a linked Google Ads and GA4 setup, auto-tagging provides richer ad data and is required for several conversion and import features. It appends a GCLID automatically. Google says auto-tagging is enabled by default on new accounts and is prioritized over manual tagging in GA4; see its current auto-tagging guide.
Manual UTMs can still serve a documented need, such as a fallback or a second analytics platform. Do not disable auto-tagging merely to force every channel into the same manual template.
15. Use the right Google Ads UTM parameters list
This practical final URL suffix maps common UTM fields to Google Ads ValueTrack values:
utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_term={keyword}&utm_content={creative}
| UTM field | Google Ads value | Result |
|---|---|---|
utm_source | google | Fixed source label |
utm_medium | cpc | Fixed paid-click medium |
utm_campaign | {campaignid} | Numeric campaign ID |
utm_term | {keyword} | Matching account keyword, when available |
utm_content | {creative} | Numeric creative ID |
Campaign names have no universal ValueTrack macro in Google's published list, so {campaignid} is the durable automated choice. Keep an ID-to-name lookup in the ad platform or reporting layer.
Useful non-UTM diagnostics include {adgroupid}, {network}, {device}, and {matchtype}. Give them descriptive custom keys such as adgroup_id={adgroupid} rather than squeezing them into a UTM field with a different meaning.
When entering parameters in Google's Final URL suffix field, omit the leading ?. Google Ads appends the suffix to the landing page. Its final URL suffix instructions show where that setting lives at account, campaign, ad group, ad, and keyword levels. Test the result inside Google Ads before launch.
16. Keep a campaign registry
A shared sheet is enough for a small team. Give it these columns:
| Field | What to record |
|---|---|
| Owner | Person responsible for the campaign |
| Destination URL | Clean landing page before tagging |
| Source and medium | Approved values |
| Campaign | Exact shared campaign name |
| Content and term | Optional detail |
| Start date | Use an unambiguous format such as 2026-08-12 |
| Final URL | The tested, publishable link |
Protect the source and medium columns with dropdowns. Free-text cells are where linked-in, LinkedIn, and linkedin quietly become separate rows.
17. Test in GA4 before scaling
Open the tagged link, then use GA4 Realtime or DebugView to confirm collection. Standard acquisition reports can take longer to populate.
For the durable report, go to Reports > Acquisition > Traffic acquisition and inspect Session source / medium and Session campaign. Google's manual campaign report documentation explains the manual dimensions available after GA4 receives UTM parameters.
Run one click before sending 80,000 emails. Also test the exact link in the email platform's rendered preview because click tracking can wrap or rewrite it.
Complete UTM examples by channel
Email newsletter
https://example.com/guide?utm_source=newsletter&utm_medium=email&utm_campaign=reading-guide-families-us-202608&utm_content=top-button
Use utm_content to distinguish the top button from a text link farther down the same email.
Organic LinkedIn post
https://example.com/webinar?utm_source=linkedin&utm_medium=social&utm_campaign=writing-webinar-teachers-us-202609&utm_content=post-1
Paid social campaign
https://example.com/webinar?utm_source=linkedin&utm_medium=paid-social&utm_campaign=writing-webinar-teachers-us-202609&utm_content=classroom-example
The campaign stays identical to the organic post. Source, medium, and content explain the delivery and creative.
Partner article
https://example.com/checklist?utm_source=library-partner&utm_medium=referral&utm_campaign=reading-checklist-parents-us-202608&utm_content=article-link
Use affiliate as the medium when the relationship is an affiliate arrangement rather than an editorial referral.
Printed QR code
https://example.com/local-guide?utm_source=community-center&utm_medium=qr&utm_campaign=local-guide-families-pa-202608&utm_content=front-desk-card
Create the tagged link first, then turn that exact URL into an image with the QR code generator. Scan the printed proof from two different phones. A QR code that worked on a bright laptop screen can still be too small or low-contrast on a matte, business-card-sized print.
UTM questions that come up after launch
Are UTM parameters case-sensitive?
Their values are case-sensitive in GA4 dimensions. Standardize on lowercase so Email and email do not split into separate report rows.
Should utm_medium be social or paid-social?
Use social for unpaid social posts. For paid social, a documented value containing paid can meet GA4's manual Paid Social channel logic when paired with a recognized social source. This guide uses paid-social.
Should I use hyphens or underscores in UTM names?
Either can work. Pick one and keep it. Hyphens are used in these examples because long values remain easy to scan in an address bar.
Can a UTM track a conversion by itself?
The URL parameters label the incoming traffic. GA4 still needs a working site tag and configured key events to connect that visit with later actions.
Where do UTM parameters appear in GA4?
Open Reports > Acquisition > Traffic acquisition. Use Session source / medium, Session campaign, and related manual campaign dimensions. First-user dimensions answer a different question about initial acquisition.
Do UTMs hurt SEO?
Campaign parameters create alternate URL forms, but ordinary tagged links do not change the page content. Keep canonical URLs configured correctly, avoid using tagged versions in internal navigation or XML sitemaps, and share the clean URL when tracking serves no purpose.
Can I shorten a UTM link?
Yes, as long as the shortener preserves every parameter through its redirects. Record both versions in the campaign registry and test the shortened link before publishing it.
Does Textavia store campaign data?
The UTM builder assembles the URL in your browser. Still, treat the generated URL as public and keep personal information or secrets out of every parameter.
