Direct / None in Google Analytics and How to Fix It
Like us, you’re probably a victim of Direct / None in Google Analytics. We wanted to know where our traffic was coming from so that we could attribute a source of leads and sales, and of course, to spend more time on that channel where it generated good traffic to our site.
This post explains what Direct / None in Google Analytics means (and campaign None or Not Set, for that matter), what causes (Direct / None) and what you can do to fix it and regain visibility of traffic sources in Google Analytics, particularly for traffic from Social Media.
What Direct / None Means in Google Analytics
Google Analytics does a great job, for free, of tracking and reporting the behaviour of visitors to your website. How much time they spent there, how many pages they viewed, which device they’re using, their screen resolution.
And how they reached your website.
Direct / None in Google Analytics: The two most frustrating words in the Analytics vocabulary.
Amongst your data in Analytics, you’ll see (none) appearing where there should be a campaign source, or a traffic source, or even a keyword. Sometimes you might also see “not provided” – that’s a whole other story.
When visitors arrive on your site, the referring site usually identifies itself to your site along with that user. Google Analytics picks up that data and records the Source and Medium from Google or Bing organic, perhaps from AdWords, provided you have AdWords and Analytics correctly connected. In some cases (sadly, an increasing number), the referring site does not provide that data, hence, “Direct / None”.
If you have Google AdWords and Analytics connected, AdWords will pass full data across to Analytics, detailing your Campaign name, Ad Group, even the keyword. Other traffic sources either don’t pass that data across, or don’t have the data to provide in the first place (like organic traffic, for example, there is no campaign name). This results in “campaign (none)” or “keyword (not set)”. Sometimes, that’s not a problem at all. Other times, it’s incredibly frustrating – we need this data to measure campaigns and the return on our effort and/or ad spend.
direct / none in Google Analytics Traffic Sources
Here was our problem. Hundreds of visitors were being reported in Google Analytics against Source/Medium None.
- We knew that the majority of those visits were landing on blog posts, had a high bounce rate, and shared a lot of other common traits with traffic referred from Social networks like Twitter and Facebook.
- We also knew that the majority of that traffic was from mobile devices and that a high proportion of that traffic was from iPhones.
Our first analysis raised a concern that URL shorteners were causing the issue.
URLs, or web page addresses, can be pretty long. That’s fine when you have lots of space to type or paste things in, like a blog post or in a long form social platform like Facebook or LinkedIn. Not so fine when you’re limited to 140 characters on a platform like Twitter.
Enter the URL shortening service, which creates a neat, short version of your URL that takes up far fewer characters, making it easier to share.
A URL shortener creates a second URL on its own server which is a 301 redirect to the full URL on yours.
So, if bit.ly is the referrer, then Twitter can’t be, right? Correct. Except, that bit.ly doesn’t pass any referrer data to your site (and therefore Google Analytics) – it shows up as (None).
We decide to stop using bit.ly to shorten links, noting that ow.ly passes the referrer data from Twitter (other social networks are available). Twitter tells ow.ly it is the referrer, ow.ly passes that straight through, untouched. Beautiful. Well done Hootsuite!
That fixed some of the issues, but we still had thousands of visits attributed to (None). We were convinced that it was coming from Twitter and other Social Networks.
Further research revealed the root cause of the issue. SSL.
SSL is secure hosting, used to make the web a safer place for you and your data.
HTTPS/SSL represents a challenge to HTTP (non-secure) websites; they typically don’t pass referrer data to your server and therefore to Google Analytics.
Lastly, and most importantly, mobile apps such as Twitter and Facebook on iPhones and Android devices also use the HTTPS protocol.
(none) is being referred (in this case at least) by Social Media apps on phones.
How to Fix the (Direct / None) Problem
There’s a simple fix to make sure that you do see referrer data for social traffic, at least as much as you can control: URL tags.
When you share your content on Social Media, add Google Analytics campaign tags which include the Source, Medium and Campaign (optional).
Regardless of whether users come from a Twitter app or the Twitter website, the tags in your URL come with them. Google Analytics reads the URL tags and adds the visit to the appropriate bucket.
You can use whichever URL shortner you prefer, bit.ly, ow.ly, goo.gl and a heap of others, but tag the URL first.
In May 2015, we started tagging URLs. You can see the Direct / None issue reducing significantly over the following months. When our site got a heap of traffic through Twitter CPC (Twitter Ads) in July, Analytics attributed it correctly because we tagged the URLs in our Twitter PPC campaigns.
Some tools to help make URL Tagging more efficient
- Google Analytics URL Builder
- Chrome Extension for Tagging URLs
- Build Your Own Tag Protocols Using Hootsuite
- Buffer automatically tags URLs as you share via its platform.
Issues With Manual URL Tagging
Manual URL Tagging isn’t perfect by any means. There are some holes in it which you can’t control.
Firstly, what if someone visits your site and shares your content on Twitter, just pasting in the URL? Well, tough. You’re back to square one with those links – no tags, no tracking.
Secondly, what if someone shares your URL with Twitter tags on Facebook. Um. Yeah. Analytics will pull the tags from the URL and attribute the visit to Twitter, not Facebook.
It’s not perfect, but it’s a hell of a lot better than thousands of visitors attributed to (Direct / None).