3 min.
Why you should never, ever, EVER tag an internal link with an external campaign variable (utm_campaign)
1L’art de la gestion de projet2Un projet à succès commence par une bonne gouvernance3Cascade, agilité, demandes de changement?

Why you should never, ever, EVER tag an internal link with an external campaign variable (utm_campaign)

Analytics & Tracking

Note: This analysis was done in French, using French themes and keywords. Some of the images associated with this article are therefore only available in French.

The common term “utm” is commonly used to name the concept of identification using campaign variables in your landing pages (ie utm_campaign, utm_source, utm_medium, etc.). It is one of the most widely used measurement methods to label the source of purchased or sponsored traffic. Indeed, adding a few parameters to the URIs allows you to accurately measure the performance of the different elements of your campaigns. On the other hand, there are certain rules to respect so that the measurement is optimal and without errors. The consequences of not respecting them can go from a distortion of the data compared to what should be downright a very important corruption of your traffic.


If there was only one rule to remember here, it would be this:


A classic example is a site running multiple campaigns, including internal campaigns. So as with external campaigns, the marketer wanted to measure their internal banners with campaign variables. This seemingly innocuous error is actually serious for the quality of your reporting in Google Analytics because it corrupts the traffic source data in a significant way:

  • This causes an artificial session multiplication  because each time a new internal campaign variable is clicked, a new session begins. More precisely, a new session is triggered each time the campaign name (the utm_campaign parameter, mandatory for any session) changes.
  • Conversions will be attributed incorrectly  because the original source through which the user came to the site is lost. In last-click traffic source reports, conversions made through an internal campaign are attributed only to the internal campaign and not to the source that actually brought the user to your site.
  • The bounce rate will artificially increase  because many of the artificially cut sessions will be  bounces  (sessions with a single interaction).
  • The average session duration is going to be artificially lowered  because all bounce type sessions have zero duration.

In order to understand why internal campaign variables should not be included, it is important to understand how sources are attributed in Google Analytics.

How sessions are attributed in Google Analytics

The interest of measuring via google analytics is to be able to analyze how your users access your site, and thus identify the most profitable source of traffic in relation to your objectives. However, this mechanism only works as long as the initial source of traffic is not lost along the way. This is unfortunately what happens when internal links are marked with campaign variables.

Methodological reminder: a personalized session with campaign variables from a Google Analytics point of view necessarily includes 3 parameters that define its origin:

  • utm_campaign: the campaign associated with the session. If there is no campaign, the returned value is “(not set)”
  • utm_source: the site or network the user was on before accessing your site
  • utm_medium: the medium or tactic the user was on before accessing your site


Situation utm_campaign Utm_source Utm_medium
User did a natural search on Google (automatically tagged – nothing to do for tagging) (not set) google.com organic
The user clicks on your post from your Facebook page BlackFriday-2016-Social Facebook Right Side*
The user clicks on a link in one of your emails 201611_black_friday_A B2C List E-mail
The user clicks on an adwords ad * BlackFriday-2016-Social Google CPC

It is important to note that :

  • Tagging by campaign variable (utm_) is not automatic. In the example below, facebook posts and emails are manually tagged.
  • Adwords ads are usually tagged with a gclid parameter (automatic tagging of Adwords), campaign parameters are thus taken directly and dynamically from Adwords.

For more information on how to tag with campaign variables, I invite you to consult my article which discusses using campaign variables to their full potential . 

The 4 sessions triggered in this way can be found in your Google Analytics reports, as here in a personalized report:

On the other hand, in the campaigns section of the acquisition reports, only the 3 sessions marked with the campaign variable “utm_campaign=” will be displayed. Indeed, when this parameter is absent, its default value is “(not set)”, and these sessions then do not appear in the campaign report because “(not set)” sessions are excluded by default.

The problem with campaign variables applied on internal links is that each time the campaign name is changed, the current session automatically stops and a new session starts, as mentioned in the  official Google Analytics support  :

Source:  official Google Analytics support

This is therefore an anomaly to be corrected because it has a great impact on your Google Analytics tracking.

But what happens from a strictly analytics point of view when a campaign variable is implemented on an internal link?

  • The user arrives on your site, for example from an adwords campaign; its provenance parameters are as follows:
  • The user clicks on an internal banner marked with custom campaign variables like this: http://www.monsite.ca/? utm_campaign =internal-promo& utm_medium =top-banner& utm_source =homepage

At this point the session it was on (Search_Brand-All_Canada_FR/Google/cpc) is terminated and a new session begins , with the source parameters written based on the values ​​of the custom campaign variables:

  • If the user makes a purchase afterwards, the source responsible for this purchase in the Google Analytics interface will be that of the session during which the purchase was made, so here the credited source of the conversion will be the  promo campaign -internal , when in reality it should have been  the source through which the user accessed the site, i.e. Google / cpc.


In conclusion, it is very legitimate to want to measure the impact of internal promotions. On the other hand, utms should only be used to measure  incoming traffic to the domain, i.e. from outside to your site . In this case, you must use specific marking, the reporting of which you can find in the ecommerce / internal promotions section of Google Analytics. This tagging requires additional implementation steps,  the details of which you can find on the official Google Analytics support .