Updated: November 25, 2025
If your GA4 acquisition reports contain separate rows for Facebook and facebook, or show campaigns with missing source and medium values, the problem often starts in the campaign URLs.
UTM parameters are simple to add, but small inconsistencies can fragment your reports. Different capitalization, unclear naming, missing parameters, and broken redirects can all make the same marketing activity appear as multiple sources or campaigns.
UTM mistakes can contribute to (direct), (none), or Unassigned traffic, although they are not the only possible causes.
This guide explains the most common UTM problems and shows how to prevent them before they affect your reporting.
Mixing Uppercase and Lowercase Value(Most Common!)
This is one of the easiest ways to fragment your reports.
For example, GA4 can treat these as different dimension values:
utm_source=Facebook
utm_source=facebook
The same problem occurs with campaign and medium values:
utm_medium=CPC
utm_medium=cpc
Even when the values refer to the same platform or channel, inconsistent text creates separate rows in reports. Google also recommends using consistent values across UTM fields to avoid fragmented reporting.
Fix: Choose one naming convention and apply it everywhere. Lowercase is usually the easiest option:
utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale_2026
Document the convention and use a shared URL builder or spreadsheet instead of manually typing values for every campaign.
Confusing utm_source and utm_medium
Each parameter answers a different question:
utm_source: Where did the traffic come from?utm_medium: How did the user arrive?utm_campaign: Which campaign generated the visit?
This URL uses the parameters incorrectly:
utm_source=cpc&utm_medium=facebook&utm_campaign=spring_sale_2026
Here, cpc is being recorded as the source and facebook as the medium. The resulting reports will be difficult to interpret.
Fix:Use the following structure:
utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale_2026
A useful rule is:
Source identifies the platform. Medium identifies the marketing method. Campaign identifies the initiative.
Omitting Important Parameters
A URL without meaningful campaign parameters may not provide the dimensions you expect.
For example:
https://example.com/product
contains no manual campaign information.
A minimum manually tagged campaign URL should normally include:
utm_source=facebook&utm_medium=paid_social
Add the campaign name when you need to distinguish one initiative from another:
utm_campaign=spring_sale_2026
Fix:Use this checklist:
utm_source → Where did the traffic come from?
utm_medium → What marketing method was used?
utm_campaign → Which campaign was this?
Do not assume that adding only utm_campaign is enough. Without a clear source and medium, acquisition reporting may be incomplete or difficult to classify.
Adding UTM Parameters to Internal Links
UTM parameters are designed to identify traffic arriving from external marketing activities.
Do not add them to ordinary links within your own website, such as:
- Navigation links
- Product recommendations
- Homepage banners
- Related-article links
- Internal chatbot links
- Checkout or account links
For example, this internal link can create misleading campaign data:
https://example.com/product?utm_source=internal_banner&utm_medium=website
GA4 associates campaign and traffic-source values with the events collected from the tagged URL. Adding campaign parameters to an internal link can therefore attribute internal activity to a new campaign or alter the context of later events.
Fix: Use event tracking for internal interactions instead.
Using Spaces and Difficult Characters
Spaces and non-English characters are not automatically invalid. Browsers encode them when constructing URLs.
For example, a space may appear as:
summer%20sale
or:
summer+sale
That encoding is normal. The real problem is inconsistent handling across campaign tools, spreadsheets, redirect services, and reporting workflows.
Characters such as #, ?, &, and % also have special meanings in URLs. If you use them without encoding them correctly, the final URL may not contain the value you intended.
Fix: For campaign governance, use a simple character set:
- Lowercase letters
- Numbers
- Underscores
- Hyphens
For example:
utm_campaign=spring_sale_2026
or:
utm_campaign=spring-sale-2026
This is easier to read, compare, and maintain than a value containing spaces or several special characters.
Using # inside a UTM value
The hash character (#) marks the beginning of a URL fragment.
Consider this URL:
https://example.com?utm_source=facebook#official&utm_medium=paid_social&utm_campaign=spring_sale
The browser may interpret everything after # as a fragment instead of part of the query string. As a result, later parameters may not reach your Analytics implementation in the expected form.
Fix: Avoid using # in UTM values. If the value must contain a reserved character, encode it correctly.
Using medium Values that do not Match Channel Rules
GA4 uses source, medium, and other campaign values when assigning traffic to default channel groups. If you invent values that do not match your reporting rules, the traffic may appear as Unassigned or in an unexpected channel.
For example:
utm_medium=marketing1
does not clearly describe how the user arrived.
Fix: Use recognizable medium values and align them with your channel-group logic.
Repeating the Same Parameter
Avoid URLs containing the same parameter more than once:
utm_campaign=spring_sale_1&utm_campaign=spring_sale_2
Duplicate query parameters create ambiguity. Different tools, browsers, redirects, and custom parsing functions may handle them differently, so you should never rely on one value “winning.”
Fix: Use each UTM parameter only once:
utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale_2026
If you need to store more than one identifier, combine the information into one documented value or use another parameter that has a clearly defined purpose.
Letting Redirects or Short Links Remove the Parameters
Short links and redirect services are useful, but they introduce another point where campaign data can be changed.
A redirect may:
- Remove the query string
- Reorder parameters
- Encode values differently
- Redirect to a different landing page
- Add a second set of UTM parameters
Fix: Test the short link before publishing it:
- Open the short link in an incognito window.
- Wait for the redirect to finish.
- Inspect the final landing-page URL.
- Confirm that the UTM parameters are still present.
- Check GA4 Realtime or DebugView with a test visit.
Do not validate only the short URL. Validate the final URL that loads with your Analytics tag.
Final Words
Most UTM problems are not caused by complicated technology. They come from small inconsistencies repeated across campaigns: one person writes Facebook, another writes facebook, one team uses paid, and another uses paid_social.
A reliable process is straightforward:
- Define the purpose of each parameter.
- Use consistent lowercase values.
- Keep UTM parameters on external campaign links.
- Avoid duplicate and reserved characters.
- Align medium values with your GA4 channel rules.
- Test the final destination URL before launch.
- Verify the result in GA4 after collection.
I have found that the best UTM system is usually the simplest one a marketing team can follow consistently. Create a shared naming convention, use a controlled list of values, and make URL validation part of the campaign launch process.
That will not eliminate every (direct) or (none) visit in GA4, but it will remove a large and preventable source of reporting confusion.