Store & Manage your email newsletter list using Google Analytics

Posted by in Search Marketing (SEO) on June 10th, 2009 4 Comments

This is a little Google Analytics hack I came up with the other day. Its not exactly a ‘robust’ solution but it might be useful for somebody!

The idea is to turn Analytics into a database for your email newsletter subscription list (or any other form where you want to collect a basic list of email addresses) .

Usually this will be done in one of three ways:

1. Integrate your web form with your CRM system- the best solution but can be tricky/ expensive to setup
2. Store the emails in a web based database then export them later – simple but requires a database and some sort of server side coding i.e. PHP
3. Send an email to yourself with the addresses each time someone signs up- pretty easy using CGI’s but can be a real pain to manage if you have a lot of subscribers.

aleksandr the meerkat Store & Manage your email newsletter list using Google Analytics

With this hack all you need is a few lines of javascript and a Google Analytics account- simples:-)

PS- The javascript part of this I borrowed from Joe Burns tutorial on javascript url variable passing. If you can’t follow my notes below that tutorial might help.

OK, here’s how to do it-

Setup your form:

You can see a demo of this here

The basic code you want is below, all this form needs to do is link to a free text form field to a page called ‘subscribe.html’.

Notice that the form uses METHOD=”LINK” where as you would usually use METHOD=”POST” for this kind of form. The javascript we’re using on the next page won’t understand the POST so make sure you use LINK.

I’ve also added some basic javascript form validation so you have to enter a properly formatted email address. This type of validation isn’t ideal but because we’re not using any PHP/ .asp on the next page its the only way to validate. If you’re using this script this shouldn’t be a problem though.

<head>
<title>Subscribe to the newsletter</title>
<script type="text/javascript">function validate_email(field,alerttxt)

{

with (field)

{

apos=value.indexOf("@");

dotpos=value.lastIndexOf(".");

if (apos<1||dotpos-apos<2)

{alert(alerttxt);return false;}

else {return true;}

}

}function validate_form(thisform)

{

with (thisform)

{

if (validate_email(email,"Not a valid e-mail address!")==false)

{email.focus();return false;}

}

}

</script>

</head>

<body>

<h2>Subscribe to our newsletter</h2>

<FORM METHOD="LINK" ACTION="subscribe.html" onsubmit="return validate_form(this)">Email address:

<INPUT NAME="email" TYPE="text" id="email">
<INPUT TYPE="submit" VALUE="Subscribe!"> </FORM>

Setup your thank you page

Next you need to create a page called subscribe.html. This page will post a variable into the address bar with the email address you submit on the previous page, which will allow us to save the address in Google Analytics.

emailscreen11 Store & Manage your email newsletter list using Google Analytics

Here’s the code you need on this page. Obviously you can change the thank you message to say whatever you want and you’ll want to use your own Google Analytics tracking code, not ours!

<FORM NAME="joe"><INPUT TYPE="hidden" NAME="burns" SIZE="35"></FORM>

<SCRIPT LANGUAGE="javascript">

var locate = window.location

document.joe.burns.value = locate

var text = document.joe.burns.value

function delineate(str){

theleft = str.indexOf("=") + 1;

theright = str.lastIndexOf("&");

return(str.substring(theleft, theright));

}

document.write("Thanks for subscribing to the newsletter ");

</SCRIPT>

<SCRIPT LANGUAGE="javascript">

var locate = window.location

document.joe.burns.value = locate

var text = document.joe.burns.value

function delineate2(str){

point = str.lastIndexOf("=");

return(str.substring(point+1,str.length));

}

document.write("We've added your email address to the list");

</SCRIPT>

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">

</script>

<script type="text/javascript">

_uacct = "UA-717197-1";

urchinTracker();

</script>

Capture the email addresses with Google Analytics

OK so we’ve sent Google Analytics a pageview with the email address in the url so if you login to Analytics, go to ‘Content’ and ‘top content’ and filter the page name ‘subscribe.html’ you should see a list of the pages with the email addresses in the variables like you see below:

email21 Store & Manage your email newsletter list using Google Analytics

You could extract this data and remove the email addresses but to make this really simple we’re going to use Google Analytics site search tracking to filter out the addresses from the page names.

If you’re already using Google Analytics site search tracking you’ll want to setup a new profile for tracking your emails.

Configuring site search to capture the emails

This is easy. Just go to your Analytics profile settings and  enable site search. Then put ‘email’ in the ‘query parameters’ box.

email31 Store & Manage your email newsletter list using Google Analytics

Viewing your subscribers

Now you just need to go to your Site search report and look at ‘search terms’ and you should have a nice clean list of email subscribers. When you want to send out an email just export the search terms report as a CSV file and there’s your list!

email41 Store & Manage your email newsletter list using Google Analytics

When to use this script

I haven’t used this on any live sites and theoretically its open to abuse but if you want a really simple email signup on a site with no database this might help.

pixel Store & Manage your email newsletter list using Google Analytics