Okay, I’m back from my blogging hiatus. I took a few months off from all blogging (guest blogging as well as my site) to focus on training for myself. In that time I finally learned VBA for Excel and SQL to rock Google Spreadsheets’ awesome query functions.
During my time away several people asked me, after reading my post on how to trash your Google Analytics account with campaign tracking, how I find evidence that a profile is being trashed. Great question. I find evidence of homicidal campaign tags using a couple of my fave tools:
Screaming Frog
Run a crawl of your site. My favorite tool for this is Screaming Frog, but Moz also has an excellent Crawl Test Tool, if you’re a Pro member.
If you’re using Screaming Frog, enter your site’s URL into the field at the top of the screen and click the Start button. After the crawl is complete, click the Internal tab and filter by utm_ to see tagged URLs Screaming Frog has found. You should not see any URLs when you do this. If you do, you have pages on your site linking to tagged pages.
Again, read this post to see why tagging internal links wreaks havoc on your data.
To see the pages that are linking to each of your tagged pages, click on one of the URLs in the upper window, then select the In Links tab at the bottom of the window. The From column will show you all of your internal pages that link to the tagged URL. (The To column will just list the URL that you selected. It’s a bit repetitive.)
Google Analytics
Take a look in your Campaigns report (Acquisition > Campaigns) for anything that seems internal-esqe. Don’t just keep the primary dimension set to Campaign. Change it to Source and then Medium — or any other options you get from the Other drop-down. You need to really poke around in here.
For example, under Source, look for things sources that don’t contain a TLD (e.g., .com, .net, etc.). Some I see a lot are blog, internal, top-nav, etc.
While you’re in Google Analytics, take a look to see if you have URLs you’re not tagging properly. If you’ve tagged properly, no utm_ parameters should show up in any Google Analytics content reports. They only show up if there’s a problem with the tags. When pages are tagged properly, Google lobs these parameters off before populating your content reports with them. So if you see tagged URLs in any content reports, it means you are not getting credit for these visits in your Campaigns report.
I look at a site’s landing pages in Google Analytics to see if there is traffic coming into tagged pages. To do this, go to Behavior > Site Content > Landing Pages. Then use the line-item filter to look for pages that contain campaign tags.
Thankfully, I haven’t borked any of my tags (though it’s happened).
You can do the same thing with all pages by selecting All Pages under Site Content. To see what pages are linking to an improperly tagged URL, select the URL in the Pages report, then Click the Navigation Summary tab above the timeline. The pages you see under Previous Page Path are the pages that are linking to your tagged URL.
Pro Tip: Any time you see the word “path” in a Google Analytis, think URI (which is just a URL that has been separated from its mommy, the domain). I hate to see good people get all tangled up in developer geek speak. 🙂
Check out this presentation I did for SearchLove last year (starting at slide 24) for some campaign tagging strategies and best practices. That page also has a Google Doc I created that will help you automate your campaign tagging a bit.
Note: I updated this post Feb 6, 2014 to clarify a couple points and add a link to my SearchLove preso.
Learn More
If you want to see if you’ve been tracking your campaigns correctly, and how the rest of your Google Analytics is doing, check out my DIY Analytics Audit Template.
You can also check out my Definitive Guide to Campaign Tagging in Google Analytics for a more in-depth look at how you should be tagging your campaigns.
Corey Dilley says
Hi Annie,
Thanks for writing this. I’ve tried following your instructions for Screaming Frog and (being a little unfamiliar with the program), I’m a little confused. I hope you could expand a little.
I’d think that filtering out any url with “?utm_” would only show addresses that have a UTM code, like in your example. It looks like it’s returned all my pages. Some have UTM codes on the end, but most don’t. Did something go wrong? Or do I have to go through the ~800 pages individually to check for the URLs with UTM codes?
If you wouldn’t mind going step-by-step into what I’m looking for within Screaming Frog, to find internal UTM codes, I’d really appreciate it.
Also, I’ve had a bit of an internal struggle to decide whether UTM codes should appear on links in places like our blog. The conclusion I came to is that even though the blog is attached to our website and is on the same domain, we treat our blog like a marketing channel, we should attach UTM codes to track blog links alongside other marketing campaigns. Is that a bad idea? If so, why?
Thanks again. I’ll definitely be reading more Annielytics.
Annie Cushing says
Hi Corey,
How about you send your Screaming Frog file to annie(at)annielytics.com, and I’ll take a look at it to see what you’re seeing? You shouldn’t have pages on your site with campaign tags.
Puru Choudhary says
Hey Corey,
Glad to see you again. 🙂
Since your blog is under your control, you can put your own analytics script on it. I think that should give you all the information you need. But, if you use UTM parameters for a visit from the blog to the main site, the main source of the visitor (e.g. a tweet about a blog post) will get erased. So you won’t know if a visitor that just signed up really came from a tweet of that blog post. Getting this insight directly, rather than stitching together various pieces, is really useful and saves time.
In my opinion, UTM parameters should always be used on properties that are not under your control — the sites where you cannot put your own analytics script. This approach has helped me decide if I should UTM parameters or not.
I would be curious to know about any other guideline that has helped people decide whether or not to use UTM parameters?
Best,
Puru
Annie Cushing says
Hi Puru,
I agree but don’t think that criterion goes quite far enough. I think another litmus test should be if it’s an actual marketing campaign, i.e., the content has a promotional intent. I don’t think campaign parameters should be used on editorial content. For example, if I blog for another site and link to my own site, I wouldn’t use campaign parameters for that. I will get more data from the referral data than I would by tagging it, like the referral path (which you don’t get from campaign tracking). If I had put campaign tagging on my Search Engine Land or Moz posts, for example, I might see that those sites sent me conversions, but I wouldn’t know which posts they came from. And that would make me sad.
Also, there is no stitching this data back together b/c of the lack of referral path data. Again, if I don’t know which blog post a conversions came from, how do I optimize my blogging? Campaign tracking introduces a black box that should be avoided unless you really need it.
Thanks for jumping in on the discussion! You’re awesome. 🙂
Puru Choudhary says
Hi Annie,
That makes sense. I would have thought of using campaign parameters in those cases as well, but I can see the mistake in my understanding now. Thanks for clarifying.
And I am always happy to join an interesting conversation. 🙂
Corey Dilley says
Hi Puru! Good to hear from you.
Thanks to you and Annie for explaining. Sounds like I’ll need to familiarize myself more with the referral path reporting.
Annie Cushing says
Corey, I know the geek speak can get a little ridiculous with analytics. Whenever you see path in GA, think URI (the URL sans the subdomain, which GA calls the hostname, btw). So path = URI and hostname = subdomain, e.g., http://www.example.com or blog.example.com).
With that out of the way, the referral path is just the URI part of a referral. So if you concatenate source and referral path, you have the URL that linked to you. I wrote a post on how to do that on the Search Engine Land site: http://bit.ly/full-urls.
Hope this helps!
Corey Dilley says
That’s super helpful, Annie. I’ve taken & modified your generously donated custom reports.
I’ve currently got an advanced filter in place to concatenate all the hostnames and URI’s in my reporting. See any potential problems with that? (screenshot below)
I don’t know if you take content requests, but a fool-proof guide to removing your own website from your list of referrers would be great. I’ve tried adding my website & subdomain to my Referral Exclusion List… no dice. I thought it might be from the landing pages that may not have GA tracking on them, but the URL that appears is my homepage, not my landing pages.
Annie Cushing says
A couple things, Corey:
1. You need to remove the forward slash in the Request URI. Otherwise, your content URLs are going to show up as /www.annielytics.com/example-url/. I see this mistake a lot.
2. I don’t recommend removing self-referrals from your view (PKA profile). I recommend, instead, getting to the bottom of what’s causing them. For starters, you have a dot in front of the hostname in your GA tracking code (screenshot: http://screencast.com/t/G7raYvFFRsEe). This causes self-referrals, so you want to remove it. Then add an annotation to your GA view (tutorial: http://bit.ly/ga-annotations) and check back in a month to see if your self-referrals have been reduced. I’d create a custom report and save it as a shortcut b/c I hate to redo work. Ever.
Corey Dilley says
I see what you mean about the slash. I’ve removed it. Thanks very much for pointing that out.
The dot in front of the hostname shouldn’t be the problem in this case. We commented out that GA code for the past few months while we were migrating to Google Tag Manager (you can see it in the screenshot). We’re going to delete that GA code now that you’ve reminded me, but it hasn’t been tracking for some time. Any other reason you can think of that the homepage would be referring traffic (as opposed to landing pages, which might be caused by a missing GA tag)?
Thanks again Annie.
Annie Cushing says
If you have sub-domains, if a visitor’s session expires, and then they click into another subdomain, that can cause self-referrals. But I doubt they’d show up en masse. If you’re getting a lot of self-referrals, I’d hit up Yehoshua Coren. He’s a GA developer and super smart (ninja@analytics-ninja.com).
Corey Dilley says
I’ve emailed him. Here’s hoping he’s as generous with his time as you’ve been. If there’s anything you think I might be able to help you out with, please let me know.
Annie Cushing says
Will do! Thanks!
Chris B says
I use Screaming Frog as my main spider and Google Analytics as my main analytic tool, and I do occasionally see URLs with the UTM code appearing in the spider report; I usually just exclude those in the configuration but once a week or so I run a full unfiltered crawl. I don’t, however, see these URLs showing up in my unfiltered Google Analytics profile, which leads me to believe that most of the time the UTM parameters are attributing appropriately. Have you seen this before?
The best hypothesis I have at this point is that we post our newsletters (which contain UTM tagged links) on our site so spiders will find the hard coded UTM link and report it.
In the case where there is something wrong with the parameter, I’ve always been taught that traffic coming through this link will be lumped into direct traffic. Do you see this happening when a link is improperly tagged or do you see a referral to the URL including the parameter?
Thanks!
Annie Cushing says
A few things:
1. You’re killing your server performance if you’re running a full crawl of your site once a week, unless it’s a tiny site. I can’t imagine why you’d possibly need to do that since SF is more of a diagnostic tool.
2. Just because visits don’t show up in GA doesn’t mean they’re not wreaking havoc. It just means that the tags were set up properly. But if they’re on internal pages on your site, you’re still trashing your data.
3. Traffic from tagged URLs will never show up as direct. It will show up as whatever you’ve tagged it.
4. Before you publish your newsletter, you need to remove the tagging from your links. What one client did was write the newsletter, copy it into WordPress, then add the campaign tagging before sending out the email.
Chris B says
Thanks Annie,
I usually do a full crawl after a full site publish to make sure that no errors got through the system undetected and to make sure that the publish didn’t somehow revert. So far our IT team has not had any concerns with server performance but I’ll have them run a few reports to make sure we are ok.
In my main analytic profiles I have filters set to remove parameters so the data doesn’t get trashed, but I’ve been very curios why some of the UTM parameters still end up in the crawl reports. There are even a few that are not contained in the news letters. But I will work with the team to have parameters removed from the newsletters before they are published, hopefully that will help.
Thanks for the suggestions!
Annie Cushing says
The data is still getting trashed, even with those filters in place. All those filters do is mask improper tagging, which I wouldn’t recommend. You want to know if there are issues.
But if you’re tagging links to internal pages (which you are), you’re trashing your data. Google already gives you the ability to track traffic from one page to another; you don’t need to overwrite your referral data to do that. I’d highly encourage you to read the precursor to this post: https://annielytics.com/blog/analytics/how-to-trash-your-google-analytics-account-with-campaign-tagging/. I know it can seem complicated when you’re unfamiliar with campaign tagging, but it’s essential to get this down.
Chris B says
Read the article and I’ll be spending time next week cleaning up the newsletters. Would you recommend adding a no-follow to the newsletters as a safety precaution?
Before I came in we had been using non-standard parameters and each of those links was actually getting indexed. I’ve made the switch to UTM but it’s been difficult keeping everything clean. So if you have other posts on dealing with parameters I’d love to check them out.
Annie Cushing says
Nofollows won’t help you. This isn’t an SEO issue; it’s an analytics issue.
Your developers can use a search and replace script and some regex to remove all utm parameters from internal URLs pretty easily. I wouldn’t recommend doing it manually.
jiyo says
Was excellent. Thank you very much., You are a good writer.
درب اتوماتیک
Lynnette Braillard says
Hi Annie,
I’m hoping you can shed some light on this. I’m banging my head against the wall trying to confirm my GA suspicions.
Last year, we made the mistake of using Google UTM campaign tracking links to track click-thrus to various pages promoted in a slideshow banner on our website. After months and months, we noticed that GA was actually showing double sessions/visits to our site in overall traffic. We were getting a visit for the entry and then GA was counting another visit to the landing page where a tracking URL was used. This artificially inflated our overall sessions/visits to the site.
This is what I need to confirm 100% that I can’t find an answer to:
Would this also double the amount of traffic to those particular landing pages that were using those UTM tracking links? For example, if we had an internal UTM tracking link to the contact us page from the home page slider, would this essentially double the traffic to the contact us page?
Would this also artificially inflate any click-thrus from the Contact Us page to any other partner sites that were linked from that page? For example, if we had partner links pointing to external sites on the contact us landing page, would this somehow inflate their referral traffic at all?
Thank you for your advice on this!
Annie Cushing says
If you’re using utm parameters on internal links, that won’t double your traffic numbers; it’s just going to replace the real referral with the overwritten referral (whatever you assign to the utm_source parameter).