Traffic Source Bounce Rates
Recently out on Twitter, someone had asked how you can calculate Bounce Rate for various Traffic Sources. In the past I have shed light on how you can create Bounce Rates for campaign elements, visitor types, etc…, but I failed to share how to see Bounce Rates for SEO, SEM, E-mail, etc… In this post I will share the way to do this. If you are reading this post, odds are you know what Bounce Rates are, but quickly, it is the percent of visitors who saw one thing (normally page or section) and then went no further. If you need a refresher on Bounce Rates, you can look at my old Bounce Rate post, or better yet, check out Avinash’s post on Bounce Rates.
Why Traffic Source Bounce Rate?
Often times, marketers want to see how each of their disparate online marketing channels are doing when compared to each other. Most will rate them by how well they perform against the website KPI’s. However, due to its popularity, may want to see the Bounce Rate for these online traffic sources. While my Segment Pathing post showed you how to see the bounce rate for a specific traffic source element (i.e. SEO Google keyword going to your home page), what if you want to see the total Bounce Rate for SEO or SEM? Unfortunately, that doesn’t come out of the box in Omniture SiteCatalyst (though you can derive it in Omniture Discover). I am not going to tell you whether the Traffic Source Bounce Rate is a valid metric as that depends upon your business objectives, but the next section will outline how to implement it.
Implementing Traffic Source Bounce Rate
So how do you implement Traffic Source Bounce Rate? Like any Bounce Rate metric, you need to be able to calculate Single Access and Entries. In SiteCatalyst, that means you need Pathing to see these metrics, so you know right off the bat we are going to need a Traffic Variable (sProp). Once you have identified which sProp you are going to use and had Pathing enabled for it by ClientCare, you need to find a way to get the various Traffic Sources that you use into that sProp. The ones I commonly use are:
- Display Ads
- Social Media
- Other Websites
- Typed/Bookmarked (a.k.a. the rest)
The key to this solution is that you need to find a way to identify the Traffic Source of the first click to your site. This can be done manually in your JS file or semi-automated using the Unified Sources VISTA Rule or the similar Channel Manager Plug-in. Regardless of the method, what I try to do is to find something that uniquely identifies each online marketing channel. Usually the best way to do this is through a query string identifier.
Here is how I do this:
SEM – If a click to your website comes from a Search Engine, you should have an identifier (i.e. ?s_kwid=) in the URL. If you do, you know the Traffic Source is SEM.
SEO – If the click comes from a Search Engine, but doesn’t have that identifier, it is SEO!
E-mail – When you send e-mails, you should be tracking the inbound clicks with a query string parameter. If so, set it to something unique for e-mails (i.e. ?eid=) so you know that if you see that identifier in the URL, the Traffic Source is E-mail.
Display Ads – In a similar manner, if you are buying Display Ads, you normally get to choose the destination URL. Therefore, you can set the destination URL on your site to have another unique identifier (i.e. ?displayid=) so you know which clicks have come from Display Ads.
Affiliates – See Display Advertising (i.e. ?affID=)
Social Media – This one is a bit trickier, but what I do is make a list of the key Social Media sites I want to track and when I see the referring URL contains one of those URL’s, I set the Traffic Source to Social Media.
Other Websites – If all of the above criteria have not been met, but there is a referring URL, set the Traffic Source equal to “Other Website.”
Typed/Bookmarked – If none of the preceding conditions have been met and there is no referring URL, set the Traffic Source to “Typed/Bookmarked.”
But Wait…There’s More!
Believe it or not, you are not done yet! Once you have found a way to distinguish the Traffic Source and are passing that into an sProp on the first page of every visit, you are 90% of the way there. The last step is a bit confusing (techie alert!). In order for SiteCatalyst to know if a visitor made it beyond their first page of the visit (hence, did not “Bounce”), it needs to see a different value in the sProp at some point during the Visit. If it doesn’t see another value passed to the sProp, it will assume they didn’t see any other pages and exited the site (your boss won’t want to see a 100% Bounce Rate for every channel – trust me!). Therefore, when a visitor navigates to a second page in the visit (any page – doesn’t matter which one), you need to force a “dummy” value into the same sProp that you previously passed Traffic Source. My clever developer, passes in the value “Did Not Bounce” as the dummy value. I will let those more technical than me discuss the best way to pass this dummy value, but once you have done this, you will have a new sProp that has one value for each of your Traffic Source Types and one extra one for the dummy value. Since this sProp has Pathing enabled, you will have a Single Access and Entries metric for each of your Traffic Sources and can now calculate Bounce Rate (I recommend using Advanced Search to hide the dummy value and save it as a Custom Report so you don’t confuse your users).
For the most part, this sProp won’t have much value beyond calculating the Bounce Rate since it is really only set on the first page of the visit, but here are some additional goodies:
- Use Trended reports to monitor Traffic Source Bounce Rates over time
- Enable Daily, Weekly, Monthly, etc… Unique Visitors on the sProp to see Uniques for each Traffic Source
- Correlate it to any other sProps that are most important on the first page of the visit (i.e. Referrer, Visit Number, etc…)
- There is one more cool thing you can do with this, but it is so cool, I need to do a full post about it so stay tuned for my next post…
Well there you have it. I wish it was not so convoluted, but don’t shoot the messenger! If anyone else knows an easier way to do this, I am all ears. I apologize for this being a bit more technical/complicated than most of my posts, but I don’t know of a non-technical way to explain this. Let me know what you think…