GA4 UTM parameters not working? Here is how to fix it.

Last Updated: May 15, 2025

GA4 often relies on UTM tracking parameters to identify traffic sources, mediums, and campaigns. So use it wherever you can.

In the following cases, your UTM parameters won’t work:

  1. You are using a UTM parameter that is not supported by GA4.
  2. UTM parameters are not formatted correctly.
  3. UTM parameters are not appended to the URL correctly.
  4. GA4 is ignoring UTM parameters.
  5. You are tagging internal links.
  6. You are using the word “shop” in the ‘utm_campaign’.

#1 You are using a UTM parameter that is not supported by GA4.

GA4 supports only the following UTM parameters

  1. utm_id.
  2. utm_source.
  3. utm_medium.
  4. utm_campaign.
  5. utm_term.
  6. utm_content.
  7. utm_source_platform.
  8. utm_campaign_id.
  9. utm_creative_format.
  10. utm_marketing_tactic.

Any UTM parameter that is not supported by GA4 will be ignored.

This is because GA4 does not know how to process these parameters.

#2 UTM parameters are not formatted correctly.

For example, you may be using ‘utm-source’ instead of ‘utm_source’. Or there could be a spelling mistake in the parameter name like ‘utm_surce’.

UTM parameters are case-sensitive in GA4.

This means that “utm_source=google” and “utm_source=Google” are treated as two different parameters.

The best practice is to use all lowercase for UTM parameters and values. Using lowercase will ensure that your parameters are consistent and easy to read.

Use the Google Analytics Campaign URL builder tool to avoid formatting mistakes while tagging the URLs.

Google Analytics Campaign URL Builder

#3 UTM parameters are not appended to the URL correctly.

Example-1:

https://www.example.com/?utm_source=googleutm_medium=cpcutm_campaign=spring_sale

In this example, the ‘&’ symbol is missing between the UTM parameters, which will result in incorrect tracking as it will prevent GA4 from correctly parsing the parameters.

With the ‘&’ symbol correctly separating each UTM parameter, GA4 will be able to accurately interpret and log each UTM parameter.

Example-2:

https://www.example.com/?utm_source=google &utm_medium=cpc&utm_campaign=spring_sale

In this example, there is a space between “google” and “&”, which could cause issues with tracking.

The space character breaks the URL, and as a consequence, only the “utm_source=google” parameter would be correctly parsed, while the remaining part might not be recognized as part of the URL parameters.

By removing the extra space, all the UTM parameters are correctly formatted and should be properly tracked by GA4.

Example-3:

https://www.example.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring sale

The space in “spring sale” is an invalid character in a URL and should be encoded (e.g., replaced with %20 or +).

In a URL, a space is not a valid character and should be encoded to ensure that the URL is correctly parsed and tracked.

In the case of UTM parameters, this is particularly important to ensure accurate tracking of campaign data.

Example-4:

https://www.example.com/?utm_source=Google&utm_medium=CPC&utm_campaign=spring_sale

UTM parameters are case-sensitive, so “Google” is different from “google” and “CPC” is different from “cpc”. This inconsistency can lead to inaccurate data grouping.

If you use different cases for the same UTM parameter, GA4 will treat them as different parameters.

This can lead to your data being grouped incorrectly, which can make it difficult to track the performance of your marketing campaigns accurately.

For example, if you use both “Google” and “google” as the utm_source parameter, GA4 will treat them as two different sources. This will make it difficult to track how much traffic you are getting from Google overall.

To avoid this problem, you should use consistent casing for all of your UTM parameters.

It is generally recommended to use all lowercase for UTM parameters and values.

Example-5:

https://www.example.com/utm_source=google&utm_medium=cpc&utm_campaign=spring_sale

The ‘?’ character is missing before the first UTM parameter, making the URL invalid for tracking purposes.

A valid URL with UTM parameters should start with a ? character.

This tells the server that the URL contains parameters.

The parameters are then separated by ampersands (&).

If the ‘?’ character is missing, the server will not be able to distinguish between the page name and the parameters.

This can lead to the URL being parsed incorrectly, and the parameters will not be tracked.

It is important to note that the ? character is only required for the first parameter.

Any subsequent parameters can be separated by ampersands (&).

Example-6:

https://www.example.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring&summer_sale

In this example, the & character within the campaign name “spring&summer_sale” should be percent-encoded as ‘%26’ to avoid confusion with the parameter separator.

When you create a URL with UTM parameters, each parameter is separated by an ampersand (&).

This tells the server that there are multiple parameters in the URL.

However, if you have a parameter value that contains an ampersand, the server will not be able to distinguish between the parameter separator and the ampersand in the parameter value.

This can lead to the URL being parsed incorrectly.

To avoid this problem, you should percent-encode any ampersands in your parameter values.

This means that you should replace the ampersand with the code ‘%26’.

Example-7: Duplicate UTM parameters in a URL.

In GA4, when there are duplicate UTM parameters in a URL, GA4 will use the value from the last occurrence of the duplicate parameter.

For example:

https://www.example.com/?utm_source=facebook&utm_medium=social&utm_source=instagram

In GA4, this will be recorded as:

Source: Instagram
Medium: social

This behaviour applies to all UTM parameters, including ‘utm_medium’, ‘utm_campaign’, ‘utm_content’, and ‘utm_term’.

Another Example:

https://www.example.com/?utm_source=google&utm_medium=cpc&utm_medium=paid_search

In GA4, this will be recorded as:
Source: google
Medium: paid_search

Another Example:

https://www.example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=summer
&utm_source=referral&utm_medium=banner&utm_campaign=fall

In GA4, this will be recorded as:
Source: referral
Medium: banner
Campaign: fall

GA4 uses the last occurrence of each UTM parameter.

#4 GA4 is ignoring UTM parameters.

Sometimes, GA4 ignores UTM parameters, even when they’re visible in the URL.

This could happen because of the following reasons:

  1. You use an unsupported UTM parameter in GA4.
  2. You format UTM parameters incorrectly.
  3. You fail to append UTM parameters correctly to URLs.
  4. The GA4 configuration tag fires after the URL with UTM parameters loads in the browser.
  5. The landing page(s) lack the GA4 tracking code (aka Google Tag).
  6. The GA4 tracking code on the landing page is invalid.
  7. The GA4 tracking code is valid but fails to fire for unknown reasons.
  8. Your web server alters or truncates the UTM parameters.
  9. You embed the GA4 tracking code in an IFRAME, and the IFRAME isn’t the parent frame.
  10. URL redirects drop the UTM parameters.
  11. Ad blockers and privacy extensions block UTM parameters from being sent to GA4.
  12. Ad blockers and privacy extensions modify UTM parameters.
  13. You use a cookie consent banner that affects UTM tracking.
  14. You place UTM parameters in the fragment portion of the URLs.
  15. Your UTM parameters don’t strictly follow manual traffic channel rules.
  16. You use server-side tagging, which affects UTM parameter visibility.

To learn more about these issues, check out this article: Why GA4 Ignores UTM Parameters & How to Fix It!

#5 You are tagging internal links.

GA4 does not give you the liberty to tag internal links.

UTM parameters on internal links can override the original source/medium data.

For example,

If a user initially came to your website through a Google search (organic) and then clicked on an internal link with UTM parameters, the source/medium might be reported as the parameters set on the internal link rather than Google.

This can distort your understanding of where your traffic is coming from.

Therefore, it is recommended to avoid using UTM parameters on internal links to maintain the accuracy of source/medium attribution.

Instead, consider using other tracking mechanisms like events to track internal navigation while preserving the original source/medium data.

Related Article: Stop Relying on Auto-Tagging to tag your ad URLs.

#6 You are using the word “shop” in the ‘utm_campaign’.

If the ‘utm_campaign’ contains the word “shop” (case-insensitive), and the ‘utm_medium’ matches the regex pattern ^paid.*$, then GA4 will classify the session as “Paid Shopping”, regardless of the ‘utm_source’.

This rule was likely designed with Google Shopping Ads in mind, but it disrupts correct attribution when you are running paid campaigns across multiple channels like Facebook or TikTok.

So a campaign tagged with utm_campaign=shop_launch and utm_medium=paidsocial will always be labeled “Paid Shopping” in default reports, even if utm_source=facebook.

The first approach is to avoid using the word “shop” in the ‘utm_campaign’.

For example, change ‘spring_shop_sale’ to something like ‘spring_sale’ or use a synonym like “store” or “promo” to avoid triggering this rule.

Another option is to slightly modify the ‘utm_medium’. GA4’s rule matches any medium that starts with “paid” using the regex ^paid.*$.

So, “paidsocial”, “paidmedia”, or “paidads” will all match and trigger the Paid Shopping classification. Instead, you could use alternatives like “social_paid” or another variation that doesn’t start with “paid”.

Another option is to create a custom channel rule that says if the source is “facebook” and the medium is “paidsocial”, then classify it as “Paid Social”.

However, the most robust and scalable solution is to use GA4 BigQuery exports and apply your own logic in SQL.

For example, if source = ‘facebook’ and medium = ‘paidsocial’, you can assign it to ‘Paid Social’ directly in your query.

This gives you full control and avoids the limitations of GA4’s default logic.

My best selling books on Digital Analytics and Conversion Optimization

Maths and Stats for Web Analytics and Conversion Optimization
This expert guide will teach you how to leverage the knowledge of maths and statistics in order to accurately interpret data and take actions, which can quickly improve the bottom-line of your online business.

Master the Essentials of Email Marketing Analytics
This book focuses solely on the ‘analytics’ that power your email marketing optimization program and will help you dramatically reduce your cost per acquisition and increase marketing ROI by tracking the performance of the various KPIs and metrics used for email marketing.

Attribution Modelling in Google Analytics and BeyondSECOND EDITION OUT NOW!
Attribution modelling is the process of determining the most effective marketing channels for investment. This book has been written to help you implement attribution modelling. It will teach you how to leverage the knowledge of attribution modelling in order to allocate marketing budget and understand buying behaviour.

Attribution Modelling in Google Ads and Facebook
This book has been written to help you implement attribution modelling in Google Ads (Google AdWords) and Facebook. It will teach you, how to leverage the knowledge of attribution modelling in order to understand the customer purchasing journey and determine the most effective marketing channels for investment.

About the Author

Himanshu Sharma

  • Founder, OptimizeSmart.com
  • Over 15 years of experience in digital analytics and marketing
  • Author of four best-selling books on digital analytics and conversion optimization
  • Nominated for Digital Analytics Association Awards for Excellence
  • Runs one of the most popular blogs in the world on digital analytics
  • Consultant to countless small and big businesses over the decade