Why you shouldn’t use UTMs on internal links
Updated by the UTM Builder team at Limner.
UTMs tell you where someone came from outside your site. On a homepage banner, a menu item or a button that takes people from one of your pages to another, they add no information and get in the way of attribution.
What GA4 does with UTMs in the middle of a visit
Google’s help article on campaigns is direct: each session is associated with a single campaign or source, and a new session doesn’t start when GA4 encounters a new campaign. Values that arrive mid-session are associated with the events where they were collected and count toward event-based attribution, but they aren’t associated with the current session.
In practice, the session-scoped report keeps showing the real source, such as google / organic. Event-scoped reports and dimensions, on the other hand, can give conversion credit to the internal campaign you made up, such as banner-home. The two reports end up telling different stories about the same purchase.
Other side effects
- The internal URL with UTMs stays in the browser’s address bar. Anyone who copies it and sends it to a friend passes the campaign along, and the friend’s visit is recorded as if it came from the banner.
- Internal campaigns bloat the campaign list and mix marketing traffic with site navigation.
- Different teams start using the same
utm_campaignfor different things, and people stop trusting the report.
What to use instead
- For banners and promo placements, GA4’s recommended events
view_promotionandselect_promotion, with parameters such aspromotion_name,creative_nameandcreative_slot. - For buttons and links, a click event set up in Google Tag Manager, with the link text and destination as parameters.
- To compare page versions, the destination URL itself or a parameter that doesn’t start with
utm_, read by an event.
UTMs are still the right call for everything that leaves the site and comes back: email, WhatsApp, social media, partners, print and ads.
How to find internal UTMs on your site
List the links on your homepage, menu and banners and paste them into the link auditor. Every link that points to your own domain and carries utm_ is a candidate for removal. Then create the event that will replace the measurement before you remove the UTM, so you don’t go a stretch of time without data.