Troubleshooting Missing Acquisition Sources & Campaigns in Google Analytics
If the questions “Why aren’t my email campaigns showing up in Google Analytics when they used to?” or “How come I can’t see any referrals in last month’s Acquisition reporting?" sound close to home, you aren’t alone! Google Analytics (GA) campaign tracking and documentation around UTM parameters often seem straightforward, but there may be underlying engineering that needs to be in place for these parameters to properly pass data.
Let’s take a deep dive into a few of the most common reasons why your campaign parameters (UTM, GCLID, DCLID) parameters fail to make it into your GA reports. Feel free to open up your own Analytics Property and website to follow along!
Traffic challenges with GA are common, and lots and lots of blog posts have been written about it — so to come up with our list, we surveyed our Bounteous consultants that double as trainers, and quizzed them on the most common questions that are asked of them during our public training sessions. Not surprisingly, troubleshooting UTM parameters (also known as source, medium, and campaign tagging) rose to the top.
But first, a quick recap into why we care about UTM and GCLID parameters in the first place.
What Are UTM Parameters?
Google provides us the ability to seamlessly capture campaign attributes by setting up and utilizing UTM (Urchin Tracking Module) tracking parameters. These are small pieces of information that are tacked on to the end of a URL that leads to your site. That link is then shared with the hopes of driving traffic back to your site, and those pieces of information are automatically added into your GA reports.
You’ve probably heard us talk about these before — and that’s because UTM parameters allow us to collect information about how users come to our website(s) and mobile applications — a marketer’s bread and butter.
How Do UTM Parameters Work?
We can use UTM parameters when we control the link. That means, that we have to be able to edit and change the link shown to someone, either in an email, an ad, or elsewhere. There is a list of terms that we can then add to the end of the URL, called parameters.
Typically, we add the parameters at the end of a URL string (often preceded by a ? and chained with an & symbol). These parameters consist of both a predetermined label, the parameter, and the value we want to assign to it.
When a visitor clicks this link and arrives at your website, GA looks for these labels (utm_campaign, utm_source, utm_medium
, and the less common but still important utm_term, utm_content
) and puts the values into the associated source, medium, and campaign dimensions inside of GA, like so:
www.bounteous.com?utm_source=linkedin&utm_medium=social&utm_campaign=abbyisawesome
What is the GCLID?
In addition, if you have linked GA and Google Ads, we can pass attribution data between the tools automatically by enabling auto-tagging. Auto-tagging ads a tracking parameter to the end of your URL called the GCLID (Google Click ID) and enables Ads and Analytics to establish the connection between the ad click and the visit to your website.
For example, if our normal destination URL is:
http://www.bounteous.com/landing-pages/something.html
Your auto-tagged URL will look something like this:
http://www.bounteous.com/landing-pages/something.html?gclid=23l14kjg123kj4h1l2kj3h4l1kjh1l23k4
GCLID parameters often break for similar reasons as UTM parameters, so be sure to troubleshoot appropriately.
In GA, both GCLID and UTM data appears in our Acquisition reporting:
Check out the URL builder tool for more information on how to access these parameters, and our own post about inbound campaigns.
That’s Great, Why Do I Need UTM Parameters?
We can use this data to gauge the success of our marketing initiatives, such as paid search or email blasts, but also to understand other important concepts like which websites are referring users to us. Ultimately, when combined with robust goals (conversions) or enhanced eCommerce (product sales data), campaign tracking allows us to find our target market efficiently and effectively.
If you are new to UTMs and want to start formulating a strategy for collecting your own campaign data, check out these Four Steps to Better Campaign Data in GA.
For the rest of you who have controlled links but are missing data within GA, read on! We’re about to reveal some of the most common reasons why this magical data may be disappearing from your Attribution reporting.
#1: Misspelled Query Parameters
I know, I know — you are probably thinking “Really? That’s all you’ve got?” Trust us, this is one of the most common reasons that third-party email systems or custom links fail.
GA expects perfection when it comes to syntax, so you’ll need to ensure that utm_campaign, utm_medium
and utm_source
are spelled correctly. Otherwise, Google will simply ignore the query parameter data (and fail to populate the dimensions within the Acquisition reporting)!
To see if this is the root cause of your missing data, check the controlled links that you are using for landing pages, email campaigns, and promotions for inconsistencies. Additionally, we’ve often seen issues where utm_keyword
is generated incorrectly instead of utm_term
, so be sure that you use the terminology Google expects.
To solve this problem in the future, you can use the URL builder tool that we talked about earlier to help minimize human error and/or spelling mistakes. You can also check out our Campaign Tagging Worksheet, which helps ensure proper spelling (while keeping you organized — bonus)!
#2: Problematic Syntax
Now that we’ve checked for spelling errors, keep that controlled link handy to look for any other syntax errors which can pile up and create a bit of a tracking mess.
More Than One “?”
Another common syntax error is the addition of more than one ? within the URL. We see this most often if the landing page already has non-UTM query parameters, or if the marketer attaches UTMs without accounting for existing URL formatting. For example, if you tried to create the previous URL with the following structure, the UTMs wouldn’t work properly:
In general, URLs with query parameters should contain a singular question mark, followed by chained ampersands:
To solve this problem in the future, you can use the same tools that we discussed above (the URL builder tool and our Campaign Tagging Worksheet) — both are free and great ways to stay organized!
Tracking Parameter Order
This is an edge case that we see very rarely, but for our own sanity, it’s best practice to place the UTM tags in front of any other query parameters. If the parameters come later on in the URL, you risk the possibility of the UTM parameters being “stripped out” (we’ll talk more on this later) similar to redirects (also more on this later).
For example, if you are adding any other query parameters, continue chaining these at the end of the URL string:
If your site URLs are using a hashtag/pound sign/octothorpe — there are a few considerations as well, which are covered below.
#3: Google Analytics Tracking Code Not Present
As with any GA or Google Tag Manager (GTM) tracking mechanism, the magic can only happen if the GA (or GTM) tracking code is present on your webpage.
The easiest way to see if you have GTM or GA on-page is to view the source code. If you’re using a mac, you can use the shortcut OPTION+COMMAND+U
. If you are on a PC, you can check that GA is loaded with the shortcut CTRL+U
.
Chrome also offers a few useful extensions, including the Tag Assistant Chrome extension.
The Tag Assistant is a very useful tool in testing and debugging your implementation, but it also shows you which Properties (UA-ID) are loaded on-page. Before you stress about your missing UTM parameters, make sure you are checking the right properties!
To take this a step further, you can also validate your hits by utilizing your browser’s developer tools (our personal favorite being the Network Tab).
#4: Redirects & Link Shorteners
If you’ve seen a surge in Organic or Direct traffic coupled by a decline in your campaign parameters, chances are that a redirect is stripping your query parameters from the destination URL. This problem is most common when you can’t seem to find where the controlled link went wrong (and you can’t see what isn’t in GA)!
A redirect is a way to send users (and search engines like Google or Bing) to a different URL. Redirects are used frequently by link shorteners or when a website has been redesigned. Common redirects that you may have heard of include server-side redirects like a 301 (permanent redirects), 302 redirects (temporary), as well as client-side redirects like a meta refresh or JavaScript redirect.
Server-side redirects are almost always the better solution and should preserve information about how someone arrived on the page. Behind the scenes, the original HTTP referrer should be passed on — which is how GA attempts to figure out traffic source information when no campaign parameters are present.
More visible to users, the query parameters on the URL need to also be passed with the redirect.
For example, if we’ve created a “vanity URL,” or a URL on our site that forwards to another page, we should practice visiting that URL with query parameters and verify that we see them on the final page where we land.
For instance, if we’ve created this redirect: www.bounteous.com/futon
that sends people to www.bounteous.com/insights/2019/06/06/futon-tips-tricks
, then we should attempt to test this with our query parameters in place.
www.bounteous.com/futon?utm_source=blog&utm_medium=email&utm_campaign=newsletter
Should redirect to:
As a best practice, check with your developers to ensure that all links are routed via a 301 redirect if possible, and that the final destination URLs are set up to preserve any UTM parameters or GCLID/DCLID parameters.
#5: SPA Hashed URLS
For those of you with SPAs or Single Page Applications (websites where the page itself does not refresh or load each time a new fragment or on-page content is updated) — query parameters can often get lost in the shuffle. If you have a URL fragment (#) within a URL, chances are you are working with a SPA which loads content dynamically:
www.bounteous.com/blog#troubleshooting-acquisition
If you see this fragment (#), we’ll need to make some changes to ensure that query parameters are being passed to GA on the specified landing page(s). If your query parameters are located after the hash key as shown below, by default GA will ignore them — and you will lose valuable acquisition data. This is expected behavior, query parameters should never be added after the hash key.
If this the case on our site, we have a few options.
- Move the query parameters to before the hash
- Rewrite the page path before sending to GA
- Switch from using a ? to a #, and adjust GA tracking
The first option is fairly straightforward if you control the location of the query parameters and it doesn’t affect the page that loads, make that change immediately!
Rewriting the page path can be tricky, but doable. If we’re using GTM, we can use a custom JavaScript variable grab pieces of the URL and rearrange them before sending to GA. After creating this variable, we can set the value as our default page path in GA using the GA Settings Variable within GTM. (Not using the settings variable? Find out why you should here).
If you already have a hash mark on your URL, you can continue to chain information using ampersands in the URL, and still have GA recognize this. However, we have to tell GA to look for this, using a custom setting. On our GA tracker, in GTM or on the page, we need to set the allowAnchor field to true, telling GA to use an anchor instead of the ? to begin the query string.
It’s important to note that there are a host of other complications with SPAs outside of anchors and query parameters. For more answers to your Single Page application tracking woes, check out our post on Tracking Single Page Applications in GA and GTM, and be sure to download the SPA Bootstrap Recipe from this post, which uses the customTask feature in GTM to handle conflicting referrers.
What If It’s All About Paid Search?
Finally, an easy way out! Remember, if your Ads and Analytics accounts are linked, and auto-tagging is enabled in your Ads account, you do not need to tag your Ads destination URLs — the GCLID will do a lot of the heavy lifting for you!
However, if all is not well in the world of GCLID, Google has put together a handy checklist for Ads troubleshooting here. Additionally, most of the troubleshooting that we’ve covered today will work just as well for GCLID parameters as with UTMs.
Final Thoughts
Now that you’ve gotten a handle on how to fix your UTM acquisition troubles, make sure you follow the best practices outlined below for happy and healthy analytics reporting.
Never Use UTMs On Internal Site Links
Do not use custom campaign tagging on internal links within your website (linking from one interior page to another). This will cause GA to erase the actual traffic source from where the visitor came from (such as organic search, web banners, etc.), and you will not be able to determine the most effective traffic sources or marketing efforts driving people to your website.
If you want to know where users are going or what they are doing on your website, use events, not UTMs!
Avoid Sending PII via UTM Parameters
Never send personally identifiable information, including email addresses, in custom campaign tags. For a list of what GA counts as PII, check here.
Be Consistent
Avoid capitalization and punctuation differences between your UTM parameters, and build on what Google has set as default. Check out these Four Steps to Better Campaign Data in GA. You can always use filters to help clean this up going forward.
Use Those Real-Time Reports
You can use the real-time report feature in GA to see campaign parameters as they happen. Pick a desired controlled URL (preferably a URL that is unique to you and has not gone live yet), and check to see if the campaign name, source and medium appear:
If you see the parameters here, you should be free and clear (outside of any additional filters, of course)!
Campaign tagging is one of the most important tasks we can work on as marketers. This process enables us to give credit to the campaigns that are driving the most traffic and conversions. As we put time and resources into our campaigns, campaign tagging is how we can measure what is working and what isn’t. It can be frustrating when technical issues get in the way, but a thorough process of testing and identifying issues can help resolve those issues!