using google analytics advanced segments to separate direct and organic traffic

user warning: Table './johnandcailincmsdb/node_counter' is marked as crashed and should be repaired query: SELECT totalcount, daycount, timestamp FROM node_counter WHERE nid = 1364 in /var/www/drupal/includes/ on line 172.

traffic to a website can be divided into four major sources : direct, paid, organic and referrals. unsurprisingly, google analytics segments the traffic sources reports accordingly.

there is, however, a small catch. the ever growing popularity of search engines has led to an odd use case : users who use a search engine to search for exactly your domain name, instead of simply typing into their web browser. these users have just reached your site via an "organic search" and google analytics will classify them accordingly.

technically this is correct, but semantically it's troubling. the users who have reached your site by typing "mydomain" into Google have far more in common with the users that entered into their URL bar and far less in common with those users that reached your site by typing "my optimized search term" into Google. and the population of these users is not small - on one of the commercial drupal sites that i maintain these "mydomain" Google searchers account for over one third of the supposedly organic traffic.

before the release of google analytics advanced segments, one could estimate the volume of "True Organic" pageviews by starting with the organic search volume, then using the keyword report to subtract all the "mydomain" keywords (mydomain,, and, my personal favorite

thankfully, advanced segments now gives us an easy way to create a "True Direct" and "True Organic" segment - in which all the "mydomain" organic searches have been removed from the organic segment, and stuck in the direct segment instead.

to define the "True Organic" segment, simply create an advanced segment in which the medium is organic, but the keywords does not contain your domain name (see diagram 1, below).

defining the "True Direct" segment is slightly more complicated. to do this we create an advanced segment in which either the source is direct or the medium is organic and there either is no keyword (users typing into their web browser) or the keyword contains your domain name. see diagram 2, below.

once these segments have been created, you can apply them to your traffic sources reports - and finally get the real answer!

diagram 1 : defining a true organic segment

diagram 2 : defining a true direct segment

I agree with everything you

I agree with everything you have written — though there is even a greater lack of functionality then you mentioned here.. unfortunately google has spammed the internet with posts and blogs from their people and google trainers touting this product at though it was the second coming– definitely a downgrade to me — a D - thanks!!! ZK@Web Marketing Blog

Excellent Post! I have been

Excellent Post! I have been looking high and low for this, this is some great info :-) thanks

Do you know if there is a

Do you know if there is a way to save advanced segments? Mine are lost after I log out and I have to rebuild them each week when I look over my site numbers.

Hi Cailin, Excellent post

Hi Cailin,

Excellent post and a great use for custom segments. True Direct plus True Organic is less than total visits. I'm new to this and I'm confused. What would your other 3,261 visits be?


The other visits are Paid

The other visits are Paid Traffic and Referrals. There is no need to build custom Advanced Segments for these - the "canned" versions work fine.

thanks for this cailin. i've

thanks for this cailin. i've been wondering how to do that for a while.

post new comment

the content of this field is kept private and will not be shown publicly.
  • web page addresses and e-mail addresses turn into links automatically.
  • allowed html tags: <h2> <h3> <h4> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • lines and paragraphs break automatically.
  • you may post code using <code>...</code> (generic) or <?php ... ?> (highlighted php) tags.

more information about formatting options

are you human? we hope so.
copy the characters (respecting upper/lower case) from the image.