How to do usability testing of your website for cheap

Usability TestingToday I came across a great idea from Dan Shapiro on how he does usability testing for his website called SparkBuy. If you are a web developer, you know that usability of your website is one of the most important aspects in converting a visitor into a subscriber/member/customer. You only have a few seconds for that visitor to truly understand what your website does and what value you provide to them before they click the “back” button and you lose them forever.


There are many usability testing tools out there today that allow you to see how a visitor is interacting on your website. A couple interesting, but expensive, services include ClickTale and ClickTale records the mouse movements of actual visitors on your website and then aggregates all the data to give you interesting statistics. If you are a subscriber of ClickTale, you can actually login and watch recordings of every Internet Explorer and Firefox visitor that has come to your website. ClickTale is an awesome technology, but the service starts at $99/mo for the cheapest package. Also, since visitors being recorded by ClickTale don’t actually know they are being recorded, there is not audio or feedback from the actual visitors.

UserTesting.comThe other interesting service in the usability testing space is is a service where you pay $39 for a video recording of someone actually browsing your site and the user talks through what they see and experience as they are on your website. The one downside to using a service like is that the users viewing your site may not be your typical user as these are people who are getting paid to provide this service, therefore there opinion can be bias.


screencast-o-maticThe innovation solution that Dan Shapiro outlines is using a service called Their basic version is FREE and their premium plan is a whopping $9/yr – yes, that is $9 per year, not month. Using this service you can then go out and recruit usability testers. Where can you find usability testers for cheap? Amazon’s Mechanical Turk. On Mechanical Turk, you should be able to find people willing to do a quick usability test of your website and record their screen and voice using screencast-o-matic, all for as cheap as $2-$5 per recording. Now how is that for cheap usability testing!

How to compare two lists and delete duplicate items in Excel

I like to post useful scripts that I write/modify/find online that I use in my everyday work. This is an Microsoft Excel macro that compares two lists of data and deletes duplicate items. I mainly us this Excel macro when I am compiling email lists for campaigns. A lot of times I have to creates lists with criteria like “Send to all unconverted leads in Salesforce, but exclude those who received emails from us in our prior two campaigns.” Querying the original list is easy, but a lot of times it is difficult to query any exceptions that are needed. Most times it is just easier to grab the lists that I know i want to exclude and compare my two lists and delete duplicate items. In this post I will include the Excel macro that you should use as well as give you a little background on how it works.


Sub DelDups_TwoLists()
Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through (list that will be deleted).
iListCount = Sheets("Sheet1").Range("A1:A10").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet2").Range("A1:A3")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet1").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet1").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub


The script is very simple to use. Just open up Microsoft Excel and put your “Master” list in the first column of Sheet1. Then put the values that you want to delete from your “Master” list in the first column of Sheet2. Next modify the ranges of each of your lists (to make this easy I have highlighted these values in red). Then simply go to “View” -> “Macros” -> “Edit” -> and copy and paste the macro script. To run the macro, go to “Run” -> “Run Sub/UserForm” or just click the green run button. That’s is! It is that simple…

How to parse Google Analytics cookie to track lead source

In my previous post titled “Lead source analytics every start-up should track,” I promised to write a follow-up post that outlines how to track the following lead source details…

  • Medium (organic, PPC, referral, email, webinar, press release, etc)
  • Lead Source (Google, Yahoo, Twitter, Facebook, LinkedIn, etc)
  • Keywords (What keywords did the visitor search?)
  • Referring URL (Where did the visitor come from?)
  • Landing Page (What was the first page the visitor visited on our website?)
  • Form URL (What was the URL of the form that the user filled out where you collected this information?)

We will use a combination of techniques including parsing the cookie set by Google Analytics to save these lead source details into PHP variables. We’ll then be able to pass these variables into our lead capture forms as hidden fields, so that when a lead registers on our website or fills out any type of form, we’ll be able to track these lead source details.

Let’s get started…

First, I’m going to give you the code. This code should be included in the header of every page of your website. Hopefully your website has one PHP file that makes up the header of every page of your website. This file is usually called header.php. If you have this file, you can dump this code right into that file.

$domain = $_SERVER['SERVER_NAME'];
$domain = "." . ltrim($domain,"www.");

$info = $_COOKIE['__utmz'];
// Get rid of id stuff
$holder = split("u", $info, 2);
$string = "u" . $holder[1];
// Parse String
$ga_vars = split("|", $string);
foreach ($ga_vars as $var) {
list($key,$value) = split("=",$var);
if ($key == "utmcmd") { setcookie("Medium", $value, time()+100000000, "/", $domain); $medium = $value; }
if ($key == "utmctr") { setcookie("Keywords", $value, time()+100000000, "/", $domain); $keywords = $value; }
if ($key == "utmcsr") { setcookie("GAsource", $value, time()+100000000, "/", $domain); $gasource = $value; }

if (!isset($_COOKIE['Referer'])) {
setcookie("Referer", $_SERVER[‘HTTP_REFERER’], time()+10000000, "/", $domain);
$referurl = $_SERVER['HTTP_REFERER'];
} else { $referurl = $_COOKIE['Referer']; }

$formurl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

if (!isset($_COOKIE['LandingPage'])) {
setcookie("LandingPage", "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'], time()+10000000, "/", $domain);
$landingpage = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
} else { $landingpage = $_COOKIE['LandingPage']; }

Here is a description of each variable and how they are tracked and saved…


Medium is parsed from the Google Analytics cookie. You will need to have Google Analytics installed on every page of your website in order for this to be tracked. When a visitor comes to your website, Google will drop a cookie that contains important information about that visitor. One of the variables saved in this cookie is Medium, so we parse the Google Analytics cookie and save the Medium into a variable called $medium.

Lead Source

Lead Source is also parsed from the Google Analytics cookie just like Medium. It is saved into a variable called $gasource.


Keywords are also parsed from the Google Analytics cookie. This variable will not always be set, but if the visitor comes to your website via a search engine, it will record which keywords they used to visit your website. This variable works with all the major search engines – not just Google.

Referring URL

This code records the URL that the visitor clicked through to your website with. The code saves the Referring URL in a cookie, so the original Referring URL is preserved. It is saved into a variable called $referurl.

Landing Page

This is the first page that the visitor visits on your website. Like the Referring URL, a cookie is also used to save this URL so that it is preserved. It is saved into a variable called $landingpage.

Form URL

This is the URL of the page that the visitor finally is on when they fill out the lead capture form. This variable will update as the visitor navigates your website. A cookie is not used. It is saved into a variable called $formurl.

That pretty much sums up the script. In another follow-up post, I will write about how to pass these variables into a form as a hidden field and save it into your database. Look for this post shortly…

Lead source analytics every start-up should track

An area of marketing that I have been spending a considerable time studying recently is website analytics. I’ve been asking myself questions like:

  • What information should we be tracking?
  • What information is important to marketing?
  • What information is important to sales?
  • What information is important to executive management?
  • How do we track this information?
  • How do we present this information to marketing/sales in a way that it can easily become actionable?
  • How do we tie all our systems together (SalesForce, HubSpot, ClickTale, etc)?
  • How to we lead nurture and lead score?
  • When should a lead transition from marketing to sales?

This isn’t an easy problem to solve, especially for start-ups with limited resources and tight budgets. However, I would argue that properly tracking leads or new member activity is probably one of the most important things any start-up can do. The information and insight obtained through analytics will answer many questions like:

  • Where are new members/leads coming from?
  • What is my cost per lead? cost per new member? cost per sale? total lifetime value of a customer?
  • Where should I be allocating more advertising dollars? less advertising dollars?
  • What part of my website is converting? not converting?
  • Are social media leads more profitable than webinar leads?
  • For those leads that turned into sales, what common traits/activities do they possess?
  • How do I nurture and educate a lead so they are ready to buy?

Those are just some of the questions you’ll be able to answer and then act on. If you are a start-up that has received VC money, these are the exact questions your board of directors and investors will be asking. They will be very impressed if you can give clear, reliable answers to their questions.

So with that said, where/how do we begin?

I have identified the following lead source details that every start-up should be tracking today (this is just a start). In a follow-up post, I will include a detailed step-by-step description on how to properly track this information. Here are the lead source details:

  1. Medium (organic, PPC, referral, email, webinar, press release, etc)
  2. Lead Source (Google, Yahoo, Twitter, Facebook, LinkedIn, etc)
  3. Keywords (What keywords did the visitor search?)
  4. Referring URL (Where did the visitor come from?)
  5. Landing Page (What was the first page the visitor visited on our website?)
  6. Form URL (What was the URL of the form that the user filled out where you collected this information?)

Keep your eye out for my follow-up post on how to track all of the above web analytics and lead source details.

The personal blog IS the new resume

If you haven’t read the article titled How to Make an Absolute Fortune From Your Blog (Really) by @ProBlogger then please, go read it now.

Darren Rowse declares “I want you to use your personal blog as a launch pad for your dream career. The personal blog is the new resume of the revolutionary.” When I read this, I couldn’t agree more.

He goes on to write, “The revolution is new, but the revolution is real. I invite you to leave the confines of the box everyone lives in and be a revolutionary.”

Please stay tuned to my blog, I have some exciting stuff planned in this area. It is my goal to revolutionize the way students and graduates think about finding jobs and defining their careers.

Facebook’s version of Google Adsense: Coming soon?

I enjoy watching startups evolve. It is always interesting to me to see how they react to competitors and how they prioritize the roll-outs of features. Facebook has been really fun to watch in the way that they are always pushing the boundaries, which usually results in their members getting angry and Facebook easing up a little. When was the last time you saw Facebook add a major new feature that was immediately accepted by the community? I think you’d have to look back to when they added photos to Facebook to find an accepted feature roll-out.

So, what is next for Facebook? My prediction, and as a developer I can’t wait for this to come, is that Facebook will roll-out its equivalent to Google Adsense, except it won’t really be like Adsense. Imaging this… You have a website built on the Facebook Graph API where users login with their Facebook account. Now imagine that all you need to do in order to get extremely targeted ads on your website is to add a snippet of code. Facebook will then serve up revenue shared ads on your website that are targeted to 1.) everything Facebook knows about the user from their activities on Facebook, 2.) content on your website, and 3.) information that the user has volunteered on your website that you pass on to Facebook’s ad algorithm. Now how is that for convenience and effectiveness as a publisher?

I would image that this is probably coming pretty soon and probably would have been here one or two years ago if Facebook Connect hadn’t been such a flop. Now that Facebook has their new Graph API and 500+ million users, we are going to be seeing a lot more websites allowing users to login with Facebook. I would expect that Facebook will roll out this type of advertising relatively shortly. My time horizon for this feature is 6 – 12 months, and when it gets here – watch out! It’ll certainly be fun to play with as a publisher/developer and will escalate Facebook to a whole new level in terms of online dominance, competing with Google, and revenue figures.

Tedious, Repetitive Tasks? Automate Tasks with iMacros

As you guys know I am all about working efficiently and using automation in my day-to-day tasks. Anything that is slightly repetitive or tedious I like to automate. You should make the iMacros FireFox plugin your best friend when automating tasks within your browser. iMacros is an AWESOME plugin and the best part is that it is free. All you have to do is install the plugin and then simply record your actions within your browser. Then to automate that process the next time you simply play back those tasks.

You are probably thinking that in your day-to-day activities that you don’t have many repetitive tasks, and I thought the same thing when I first discovered iMacros. But after learning different ways to use the iMacros plugin and being a little creative, I have been able to discover several tasks that I can save several hours each day with iMacros. iMacros has a great wiki and by spending a little time learning and experimenting I have been able to learn how to run loops from Microsoft Excel files and also to execute copy and pastes by saving what I copy as a variable and then using the variable later in the iMacro script. When you start to get your feet wet with iMacros you really start to see how powerful this plugin really is.

Your probably thinking that from my enthusiasm for iMacros that I am going to insert an affiliate link at the end of this blog post, but it is completely free and I have nothing to gain. I just think that iMacros should be part of everyone’s arsenal of tools when working online.

Make a Personal Connection with New Followers on Twitter

Would you rather ask someone to follow you or communicate with you on Twitter? Twitter is designed so people can “follow” you, but the word follow implies a passive, impersonal connection. However, there is a way to use Twitter to promote communication, active engagement, and conversation that is relatively easy to implement.

Instead of just linking to your Twitter profile and asking people to come follow you, I suggest that you use a more direct approach. Use a link that looks like this:

But of course replace “andrewnadeau” with your own Twitter ID. This link is going to link directly to that person’s “What are you doing?” box, and already have @andrewnadeau filled in. It will look like this…

You will want to say something like “Send me a message on Twitter” rather than just “Follow me on Twitter” when using this type of link. This makes your message much more personal and encourages your visitor to take the initiative to make contact with you. It will then be up to you to make a personalized response to their initial contact. Once you have exchanged messages you now have a more personal connection with this person and they are more likely to engage in your Twitter posts later on. This is a much better result then just having someone passively follow you and never really build a personal relationship.

So lets give this a try…

Send me a message on Twitter!

I promise to send you a message back on Twitter.

#1 Way to SEO a WordPress Blog

WordPress Blogs on their own are extremely search engine friendly. Within minutes of publishing a post you can get a listing in Google. Because of this WordPress is extremely valuable in generating traffic and building your business. If you are just a casual blogger that does not know too much about search engine optimization (SEO) there is one extremely important and beneficial way to optimize your blog posts for the search engines.

#1 Way to SEO Your WordPress Blog

By default WordPress does not optimize your URLs for the search engines. Look at the URL of one of your blog posts. It might look like The problem with this URL is the ?p=329 part. Google gives extra weight to pages that have the main keywords in the URL, so as a blogger you are missing out on huge brownie points from Google by not optimizing your URLs. For example, the URL for this blog post is Google will give extra weight, and therefore rank my page higher in their results, for anyone searching “SEO a WordPress Blog” or a combination of those keywords.

How to SEO Your WordPress Blog’s URLs

In your WordPress Admin Panel click on “Settings”, “Permalinks”, and then click the “Custom Structure” radio button. In the “Custom Structure” you will want to type /%postname%/ and you are done. It is really that easy to do. WordPress will now automatically convert your blog post URLs to URLs that are optimized for the search engines.

Navigating the Social Media Landscape

There are hundreds of established Web 2.0 companies and thousands of more start-ups. It can be very difficult navigating through the social media landscape and identifying services that will help you or your business build a presence online. Overdrive Interactive, a social media consulting business located in Boston, MA, has done a very good job of mapping and categorizing a large variety of social media websites that will help you make sense of it all.

Click the image to enlarge