The ROI Revolution Blog
Mixed Type Custom Variables in Google Analytics
June 28, 2011
Google Analytics features 3 types of custom variables: page-level, session-level, and visitor-level. The official Google Code documentation on custom variables is pretty explicit about the fact that it's best not to mix types:
"Generally it is not recommended to mix the same custom variable slot with different types as it can lead to strange metric calculations."
What isn't exactly clear is what happens if you do decide to mix types. Google Code provides two cases, but surely there are additional cases. To this end, I decided to test 9 total cases:
Keep Reading »
Handling Email Referrals in Google Analytics
January 24, 2011
If you've spent any time looking through your traffic sources in Google Analytics, particularly your referral sources, you may have noticed a lot of your traffic coming various mail sources:

Clearly it's not terribly useful to see your traffic broken out this way. At the very least, you would want to consolidate all of those mail.yahoo.com sources.
But if you think about it, it probably doesn't matter a whole lot which email service provider a visitor happened to be using when they clicked to your site. Perhaps it'd be better if we just consolidate all of those email sources into one entry. Not only would this significantly clean up reports, but it would also allow you to see the overall impact of traffic coming from email to your site.
The easiest way to handle this is by using filters:
Keep Reading »
Google Analytics Subdomain Tracking
January 5, 2011
If you do a quick search on "Google Analytics Subdomain Tracking", you may have noticed that many of the top results are either woefully out of date or rather confusing. The purpose of this post is to provide my recommendations for Google Analytics subdomain tracking as of the current version of the asynchronous Google Analytics Tracking Code.
Currently there's no specific article on Google Code dedicated to Google Analytics subdomain tracking. The closest is this, which recommends the following:
//Tracking code customizations only
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_setDomainName', '.example-petstore.com']);
_gaq.push(['_setAllowHash', false]);
_gaq.push(['_trackPageview']);
I propose that instead, for the vast majority of sites with subdomains, you should use the following:
//Tracking code customizations only
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-12345-1']);
_gaq.push(['_setDomainName', 'example-petstore.com']);
_gaq.push(['_addIgnoredRef', 'example-petstore.com']);
_gaq.push(['_trackPageview']);
So what's wrong with the code recommended on Google Code? It turns out there are three issues with the code that cause unnecessary problems:
Keep Reading »
GARE: Updated Google Analytics Dimensions Drop-down
August 9, 2010
If you've been following GARE since the beginning, you know that the very first thing GARE ever did was add additional dimensions to the segment (now dimension) drop-down and make these available for nearly every report. As time moved on, more and more segments were added, and the list began to get rather long and unwieldy.
Well, a few weeks back, the dimensions drop-down in Google Analytics underwent a fairly major overhaul. If you haven't seen it yet, it looks something like this:
Clicking the above image will display a larger, more readable image.
I'd like to point out several excellent features in the new drop-down:
Keep Reading »
Converting To Asynchronous Code
June 30, 2010

There's a pretty strong push now for everyone to move to the new Asynchronous Google Analytics Tracking Code. It's the only code that's available from the interface now, and nearly all of the documentation includes examples of this as the primary code to be used.
Converting your code to the new async code might seem like it's just a hassle, but there are benefit to using the new code. Because the code loads asynchronously, there's no longer any danger that it will interfere with the loading of the rest of your page.
This means that the code can now be placed up in the header of your pages rather than right before the closing </body> tag. The result is that you'll be able to track a greater percentage of your visitors than your were previously, which will improve the accuracy of your reports in Google Analytics.
Now if your setup isn't too complex, converting won't be too big of an issue. Your old code might look something like this:
Keep Reading »
GARE: Default Applied Advanced Segments
April 6, 2010
I was thinking the other day about some of the problems with Advanced Segments in Google Analytics. Don't get me wrong, I like the feature quite a bit and use it all the time. The main problem I have is that advanced segments require an extra step.
What I mean is that when you view a profile's report, if you want to apply an Advanced Segment, you have to expand the drop down or click the link in the left nav, click a few more things, and then finally it's applied.
That's OK if you need that advanced segment infrequently. But what if you have an Advanced Segment you use constantly, all the time, maybe even every time you view a particular profile? Then this process becomes a bit of a hassle.
Enter Default Applied Advanced Segments.
Keep Reading »
State Popularity: the latest addition to the GARE
February 22, 2010
We have another new addition to the Google Analytics Report Enhancer, thanks to Ophir Prusak of Google Analytics Authorized Consulting firm POP. This metric helps to interpret the significance of visit counts at the US State level. You can hear the rest of the story by reading Ophir's excellent post on the metric.
Now that State Popularity has joined the GARE family, it's a great time to download the latest version of the Report Enhancer. Here are the steps:
- Get Firefox
- Get Greasemonkey
- Get the GARE
In addition to the new metric, I've also been able to improve the way additional metrics are added to tables, including better sorting and handling of advanced segments and compare to past.
So how is State Popularity calculated anyway? I'm glad you asked!
Keep Reading »
Our 8 Most Popular Analytics Posts of 2009
December 29, 2009
The end of the year is a nice time to take a look back over all that was accomplished throughout the year. To that end, I'm going to give you a list of our top 8 Analytics Blog Posts of 2009. As we go through the list, I'll give you a short description of each post as well as any random thoughts I have about the post.
Enjoy the posts and have a Happy New Year!
Keep Reading »
Get More from the Navigation Summary and Pivot Tables
December 1, 2009
Back in August, a tip was released on the Official Google Analytics Blog that allows you to export more than 500 rows from a report. In the post, this technique was used to export more than 500 rows worth of keyword data. Here we often use this technique to export more than 500 rows worth of pages from the Top Content report.
What you may not realize is that you can also use this trick to export more than 10 previous and next pages from the Navigation Summary report. As you may recall, the navigation summary report looks something like this:

In some case, 10 previous and next pages may be just what you need. But what if you want more?
Keep Reading »
Need Your Own Google Analytics Greasemonkey Script?
November 9, 2009
I write most of my Greasemonkey scripts with the idea that they will be useful to as many Google Analytics admins and users as possible.
But what if you need a script that's very specific to your business needs? Or maybe you've heard about the Google Analytics API and you'd like to use it to tie your Google Analytics report data with data from your back end. You might even just need some custom modifications to your Google Analytics Tracking Code and general setup to get that one bit of data that can make or break your business.
At ROI Revolution, we offer support plans that can be used for nearly any type of Google Analytics project you can think up. You can also use your support time to have us help you effectively configure optimal tracking for your business goals, get a second opinion on that those thorny configuration issues, or just to audit your Google Analytics account setup and make sure everything's working just as it should.
And if you just want your own Greasemonkey script, we can make that happen too.
Learn more about our Google Analytics technical support offerings.
Universal Conversion Code For Google Website Optimizer
October 13, 2009

We've been using a piece of code for a while that makes it easier to set up multiple Google Website Optimizer experiments. These experiments could be one right after the other, or even several experiments running simultaneously.
The only requirement is that you should have a single conversion point for all of your Google Website Optimizer experiments. You may be able to adapt this code to situations with multiple conversion points, but that's likely to get rather complicated.
So why use this code? Oftentimes your conversion point is a page that you're not really wanting to edit a lot, or may even be able to edit a lot. Instead of having to update your conversion page every time you set up a new experiment, you just add this code to your conversion page once and forget about it. It will register a conversion for all current and future experiments, and will even accommodate visitors who may be part of more than one experiment.
So here's the code:
Keep Reading »
Copy Filters in Google Analytics
August 6, 2009
The Copy Profiles Greasemonkey script now allows you to copy filters from one Google Analytics account to another. Simply go to the Google Analytics account that has the filters you want to copy. Go to the Filter Manager. Check off the boxes for the filters you wish to copy and hit the "Copy" link located in the column header.
Once you've done this, navigate to the Google Analytics account that you want to paste the filters into. Go to the Filter Manager again and click the "Paste Filters" button.
Now sit back and watch it go.
Again, this script is actually an addition to the Copy Profiles script. If you already have the Copy Profiles script, you'll want to download it again to get the filter copy feature. Here are the steps for everyone else:
- Get Firefox
- Get Greasemonkey
- Get the Copy Profiles script
Both this post and the previous post will give you the same script. For those who haven't been following along, this script is a separate script from the GARE, at least for now.
That's it! I'm fresh out of scripts. If you think of an improvement to this script or find a bug, let me know. I wouldn't mind hearing from you if you've just plain found this script useful either :)
Copy Profiles in Google Analytics
I've written a Greasemonkey script that allows you to copy and paste profile settings from one profile to another. This includes main website profile information, goals, filters, and users. Hopefully this will save you some time in situations where you need to create multiple profiles that share a lot of the same attributes.
The best way to understand exactly what this script does is to download it and try it out:
- Get Firefox
- Get Greasemonkey
- Get the Copy Profiles script
The profiles have to be in the same account, but hopefully that won't be too limiting to anyone. I actually spent a significant amount of time getting this to work across accounts, but decided that wouldn't be the best for several reasons:
- The main profile settings are rarely the same for profiles across accounts.
- The goals are rarely the same for profiles across account. If you want to copy goals across accounts, I would recommend getting Lunametrics' Goal Copy add-on.
- Some filters may be the same across accounts, but there's a danger of accidentally copying filters that reveal too much about a particular account if you simply copy all filters from one profile to the other.
- Ditto for users.
If you think I'm wrong and you'd really like to be able to copy profiles across accounts, let me know why and I'll see what I can do. Or if you're into writing Greasemonkey scripts, you could always write the script yourself. I'd be very interested to see it when you get done.
I purposefully wrote this script so that it wouldn't break in the way that these types of scripts would normally break. It's possible it could break in other ways, so let me know if you see any issues.
You should have no problems using this alongside the GARE. It will most likely be included at some point depending on the response I get.
I have one additional script idea that I may release today, tomorrow, later, or not at all. It might be easier to guess this one.
Refresh Rate: the latest addition to the GARE
August 5, 2009
As some of you may have noticed (Amit), there has recently been a new addition to the Google Analytics Report Enhancer. Refresh Rate is a new metric that was conceived of by Caleb Whitmore of Google Analytics Authorized Consulting firm Analytics Pros. This metric gives you a great way to measure user engagement at the pageview level. I could say more, but Caleb has written a fantastic post that gives the whole story on Refresh Rate, of which the inclusion into the Report Enhancer is but a small part.
Now that Refresh Rate has joined the GARE family, it's a great time to download the latest version of the Report Enhancer. Here are the steps:
- Get Firefox
- Get Greasemonkey
- Get the GARE
The latest updates to the GARE include:
- Refresh Rate
- New Dimensions:
- Market (Thanks to Caleb again for this one)
- Hour of the day
- Day
- Week
- Month
- Additional Segments for Secondary Segmentation and Pivot Tables
- Improved Advanced Segment handling
- Improved Data Sampling Handling
- Deselect All Visits for two or more Advanced Segments
And just in case that wasn't enough for some of you (Amit), I'm planning on doing another post either late today or early tomorrow to reveal a new Greasemonkey script that I've decided to release independently of the GARE for now. So you may want to stay tuned :)
Tracking Transactions back to the Initial Referrer with Google Analytics
May 21, 2009

Google Analytics, by default, will attribute transactions to the last referrer. While this is all fine and good, there are some situations where you would really like to be able to track these transactions back to the initial referrer rather than the last referrer.
For example, you may be spending money on AdWords traffic to get visitors to the site initially, but many of the actual transactions aren't occurring until later when they've returned to the site organically. You can change your Google Analytics Tracking Code so that it credits these transactions to the initial referrer rather than the last referrer, allowing you to get a better handle on the return for your paid marketing efforts.
One issue with changing your Google Analytics code so that it gives transaction credit to the first referrer rather than the last referrer, however, is that this is a permanent change affecting all profiles. You can't have one profile that gives first referrer credit and another profile that gives last referrer credit because both profiles will use the same set of cookies, even if those profiles use separate account numbers.
You can work around this, however, by using a local, modified version of ga.js. The original ga.js modification and idea comes from John Henson at Lunametrics, though I've tweaked a few things for my own purposes. His post that I'm referencing isn't directly related to this modification, but there are some tie-ins to the overall idea of using different cookies.
If you want to switch all of your profiles over to track initial referrer rather than last referrer, you can just use the following code:
Keep Reading »
Get ga.js code for your Google Website Optimizer experiments
January 9, 2009
As part of the expanding scope of the Google Analytics Report Enhancer, you will now be able to see the ga.js equivalent code for your Google Website Optimizer experiments.
In addition, I have also added checkboxes that will allow many of your to quickly modify your code for tracking across subdomains and/or multiple domains. These options will also be available whenever you create new profiles in Google Analytics or check the status of your profile data.
This is an extension of Shawn's valuable post on installing Website Optimizer if you use Google Analytics. The Google Analytics Report Enhancer can simplify this process, but you should still refer to the post for additional details on where everything goes, how everything works, and handling specific situations.
If you need the latest version of the GAREnhancer, click here.
The GAREnhancer is a Greasemonkey script. If you don't have Greasemonkey, you can get it by clicking here.
If you have no clue what the GAREnhancer does, you can read the original article by clicking here
I have also added a feature to alert you if a critical update for the script is available. If you see the words "Update Needed!" next to the Report Enhancer logo in the header, you can click them to download the latest version of the script. Once you've installed the updated script and refreshed the page, the image should no longer be visible.
There's probably a lot of ways this new feature can be improved, so leave a comment if you think something else should be added, or if you found this script particularly useful.
If you would like some additional help with the topics discussed today, you might want to check out the versatile Support Plans we offer.
Excluding Robot Traffic in Urchin 6
December 19, 2008
If you are using the IP+User+Agent method to track visitors in Urchin 6, you've probably noticed that quite a bit of your traffic is actually robot traffic:

While it's interesting to see this activity broken out, most of the time you're better off excluding it from your reports.
Keep Reading »
Website Optimizer Wednesdays - Excluding Internal Traffic
October 22, 2008
Google Website Optimizer experiments use 4 different types of scripts. In a nutshell:
- Control script - Determines which combo to serve up
- Section scripts - Determines which areas to swap out
- Tracking script - Registers visit
- Conversion script - Registers conversion
To exclude ourselves from the reports, we only need to modify the tracking script and the conversion script. By only modifying these sections, we can see the page exactly as our visitors see it without skewing our test results.
Here's the way your tracking script looks "out of the box":
If we're already using Google Analytics, we'll want to properly integrate our Google Website Optimizer code with our Google Analytics Tracking Code. Check out Shawn's excellent post on the subject if you want to know exactly how to do this. For simplicity's sake, we'll use the above code as our base.
Now let's say we are excluding our own traffic by setting the user defined value to "internal". When we do this, the user defined value is stored under a cookie name "__utmv".
Using regular expressions, we can check for the existence of this cookie and its value and only run the Google Website Optimizer tracking script when the cookie exists with the correct value:
Note that our conversion script should be the same as above, only replace "/test", with "/goal".
Now if you have a static ip address, you can also exclude based on that ip address, but this will take some server side code. We'll use php as an example:
This would exclude all traffic from Google Website Optimizer tests coming from the IP address 12.34.567.890.
As a footnote, these same ideas that we explored above can be used to do even more with our Google Website Optimizer experiments. We could, for example, modify the scripts so that only AdWords traffic shows up in our Google Website Optimizer reports. For a heavily AdWords-driven business, this would help tailor experiments to more closely match the most often used Google Analytics reports.
To learn more useful testing tips sign up for our Google Website Optimizer Training Series starting January 8th. This two session training series will encompass landing page principles, an intro to testing and advanced testing. Join us for the GWO Training Series!
Want more of Website Optimizer Wednesdays? Check out the rest of the series!
Exclude Internal Traffic from GWO | Optimize Your Call to Action | Landing Page Relevance | Choosing the Right Test Page | GWO and GA Renew Their Vows
Keep Reading »
Google Analytics Report Enhancer Updates
October 21, 2008
BREAKING UPDATE! I had to make an update to the GAREnhancer Monday, March 9 at 10:00am ET due to recent interface changes. If the script is broken is broken for you, re-download the script and you should be all set.

I've decided to create a separate entry for some of the latest updates to the GAREnhancer Greasemonkey script. Most of these are just small things that can make your Google Analytics (and now Google Website Optimizer) life a little easier.
If you need the latest version of the GAREnhancer, click here.
The GAREnhancer is a Greasemonkey script. If you don't have Greasemonkey, you can get it by clicking here.
If you have no clue what the GAREnhancer does, you can read the original article by clicking here
Here's a quick summary of the most recent changes:
Keep Reading »
Tracking a Section with Google Analytics
October 16, 2008
If you've read Shawn's Article about tracking autoresponders, you know that Google Analytics' Site Search tool can be utilized to track secondary sources. Toward the end of this post I'll give you a way to use Site Search to track the effectiveness and value of a section, such as a blog section, as well as a page's contribution to conversion rate as a member of that section.
But first, a little background info:
If you've spent any time in the Google Analytics reports, you've probably noticed the $index field in the Top Content reports that somehow represents a page's relative worth. This field can be a great way to get an idea of a page's contribution to the success of your goals and ecommerce revenue.
But where do the numbers for $index even come from? If you click the question mark button next to $Index in the Top Content report, you will receive the following explanation:
"The average value of this page or set of pages. $Index is (Ecommerce revenue + Total Goal Value) divided by Pageviews for the page(s)."
Now it turns out that there are a few subtleties that are not indicated by the definition. For starters, the formula is actually using unique pageviews rather than pageviews.
Second, if you look at the $index of a page and compare it to the Per Visit Goal Value or Per Visit Value of that page (depending on whether you have a lead gen site or an ecommerce site) after drilling down into the page and segmenting by source (or medium, or source/medium if you've installed my Greasemonkey script), chances are very good that the two values are relatively close, but certainly not equal.
Why is that? Here's why:
Keep Reading »
Urchin 6 Update
August 7, 2008
Google has just released Urchin 6 - Service Pack 1. There are some very important additions to this new version of Urchin 6.
First, several of the old Urchin 5 helper scripts have been revised and modified for Urchin 6:
Email Yourself Reports!
u6data_extractor.pl - You can use this script to retrieve data from the urchin.cgi engine and print a text-based report, which can be emailed, converted to HTML, etc.
Discover Processing Errors
u6scan_history.pl - This script will parse the Urchin 6 scheduler history file for errors for a particular date and print a notification if any profile exits with a non-zero exit status.If desired, the runtime output from each failed task can be printed inline.
Manage Your Logs!
weblog_rotate.pl - If you are in need of a system of log management, this script will be very handy. This script rotates the specified logs and names them with yesterday's date. The script also restarts the web server with a specified command and optionally compresses old logs and removes them after a certain period.
In addition to these scripts, a totally new feature has been added which enables you to perform user management at the command line. Using the uconf-manager, you can add, delete, and update user records without having to go into the Urchin Administration Interface.
The uconf-manager also allows you to reset the admin password and move users to a different account, tasks that cannot be done using the Urchin Administration Interface. You can also use the uconf-manager to automate the process of user creation, saving you valuable time and eliminating frustration.
ROI Revolution is an Urchin 6 reseller and so if you are ready for Urchin 6, go to www.roirevolution.com/urchin/urchin-six.htm to purchase or upgrade to Urchin 6 today!
Google Analytics Report Enhancer
June 26, 2008
UPDATE: You can read about the most recent updates to the GAREnhancer here, but the same script is available from both this post and the new one.
A few weeks ago, Shawn wrote an article on true time on site and how you can calculate it. You may also know that for a while, Google Analytics actually calculated time on site using this method before reverting back to the calculation method used now.Several weeks ago I came out with an article on a Greasemonkey script I'd written which added several segments to the usual segment drop down.
I'm about to tie all of these together.
Introducing, the Google Analytics Report Enhancer!

Keep Reading »
Segmenting by Source/Medium and other stories
May 9, 2008
UPDATE: This script has been superseded by the GAREnhancer. All future updates will be made to this new script.
Have you ever gone to segment the content detail of a page by source/medium, only to find that you can segment by source or medium, but not both? Well those days of frustration are over, thanks to a Greasemonkey script I wrote just the other day.
Not only that, but you will also be able to segment by transaction, adgroup, and referral path anytime a segmenting opportunity comes up. Now you can see exactly which transactions are attributed to each source, medium, source/medium, keyword, campaign, new or returning visitors, and more. I'm sure everyone can think of some good uses for this.
To expand your segmenting abilities, first download the latest greasemonkey firefox add-on. Then download my script right here. You should be able to just click and install it if you already have the Greasemonkey firefox add-on installed.
A couple notes here about the script:
1. If you segment by one of the fields, then try and segment by another field, you may find that your options are once again limited. To fix this, segment by "none" first and then you should get the additional fields back. UPDATE: This issue has been resolved as of 06/06/08. Just re-download the script.
2. You can also segment by Product, Product SKU, and Product Category, but this may not work as well as anticipated. If that's the case, you can drill down into a product and segment by source/medium or whatever report you were looking at and see the data from the other direction.
If you've found this tool useful or if you have any suggestions for improvement, please leave a comment. Thanks!
UPDATE: I have a new script which adds a few additional fields to segment by, such as exit pages, page titles, browser and OS combined, and others. There are also some more obscure fields whose purpose is not obvious, so if you find one of them useful then let me know how you used it! Here's the script.
Note that if you have both scripts enabled at the same time, the second script in the list will override the first. Also, this second script makes your segment drop down rather long, so you may just want to stick with the first. I felt I should provide it, though, for completeness.
Tracking Subdomains
March 27, 2008
One of the most important things to consider when trying to set up Google Analytics for your site is the integrity of your visitors' source/medium data. Keeping this data as accurate as possible will go a long way to helping you make useful decisions about your marketing efforts.
That being said, there is a silent enemy threatening to destroy the harmony of your Google Analytics data: the self-referral. You may first see it rear its ugly in head in the All Traffic Sources report. Not only is it rather disconcerting to see your own site as a visitor's referrer, but this entry in your reports represents irrevocably lost data. What's worse, you may even notice that the conversion rate for this segment of traffic is actually quite good. You may be putting lots of time and money in SEO, paid online adversing, e-mail campaigns and print ads, but when someone asks which of these was responsible for the conversion, you really don't know. Some of those sources may be getting overwritten by your self-referrals.
If your site has subdomains (domain.com and blog.domain.com, for instance), this might be causing the self-referrals to show up in your reports. The standard Google Analytics Tracking code is only good for sites with a single domain and no other structural complications. Anything beyond this and you'll need to make some kind of modification to the script. Subdomains are one such complication.
Whenever a visitor comes to your site, the Google Analytics Tracking Code on your pages asks the visitor's browser a question:
Keep Reading »
Update to Matching Specific Transactions to Specific Keywords
February 18, 2008
Shawn wrote an article back in May which showed you how to use filters in Google Analytics to modify your transaction list to see source, medium and keyword data for each transaction. As many of you have noticed by now, there have been some issues since January 15th involving custom fields which have caused this and other advanced filters to stop working.
Since then, we have found a way around using custom fields for this particular set of filters. Your reports will look and function as before.
Here are the details:
Keep Reading »
Keep Track of Changes to Your Profiles
January 16, 2008
It's hard to get things right the first time. You may come up with a brilliant plan for your Google Analytics setup and think that you've thought of everything, only to have the data start coming in and realize that things are not looking quite like you hoped they would. Or perhaps your analytics just need a modification and you need to change your goal steps or create new ones. When these kinds of things happen, you may need to alter your Google Analytics profile settings.
And that's OK. While we recommend setting up a "sandbox" profile where you can test what effect changes to your profile might have on your data before editing your main profile, at some point you'll have to make those changes live in order to reap the benefits of cleaner, better data. When this happens, you will want to record those changes.
Keep Reading »
Some Thoughts on Exit Rate and Bounce Rate
January 8, 2008
I was thinking the other day about the relationship between exit rate and bounce rate. It's often assumed that there's some type of mystical relationship between these two metrics, so I thought it would be worthwhile to dig deeper into this relationship to see what's actually going on.
First, we can define these measurements using rather simple equations.
exit rate = exits / pageviews
bounce rate = bounces / entrances
Now if we think about it, every visit to your site has an entrance. And unless you have visitors who stay active on your site 24/7, taking 15 minute power naps in lieu of actual sleep just to keep their current session alive, every visit to your site will also have an exit. Therefore, if we're talking about the exit rate and bounce rate of your site, we can say that entrances = visits = exits and make the appropriate substitutions in the above equations:
exit rate for the site = visits / pageviews
bounce rate for the site = bounces / visits
This would seem to indicate that if the number of visits increase then exit rate will increase while bounce rate will decrease, and alternatively, if the number of visits decrease then exit rate will decrease while bounce rate will increase. Of course, this assumes that visits are independent of both pageviews and bounces, which they aren't. So to understand this relationship, we have to think about the quality of visits that we're getting to the site.
Keep Reading »
Google Analytics ROI Calculation Macro
November 26, 2007
If you have used the ROI Calculator Spreadsheet tool that Shawn came out with before, you know that it takes several steps to get to the point where you can start entering in cost data and seeing that ROI. If your need for ROI data is only occasional, then this works great. In addition, if you click on the appropriate link below, you can download the latest version of this spreadsheet, which eliminates step 4 from Shawn's procedure.
Microsoft Excel 2007 Version
Microsoft Excel 97-2003 Version
If, however, you find yourself running through these steps again and again on a frequent basis with no shortcut in sight, there is hope!
Introducing...the ROI Calculation Macro.
Keep Reading »