Stumbleupon Traffic Source

As many people have noticed stumbleupon has become a pretty good source of organic traffic. For me stumbleupon is 10-20% of the growth of my paper airplanes site at the moment and I know I am by no means the most popular paper airplanes site on stumbleupon right now (btw that wireframe rocks... a future project for me too I think).

I may not be the top paper airplanes site in stumbleupon and it certainly isn't my biggest source of traffic but it is now a significant enough contributor with lots of potential that I want to spend some time on it. The main issue as many people have seen is that traffic from stumbleupon is very bumpy indeed:

What is interesting though is though each bump is adding up to hundreds of visitors (sometimes near 1000) they are interspersed with long periods of zero (or v. low) traffic. The last spike you can see was followed by some level of sustained traffic, not huge but a significant part of my daily unique visitor growth. The main reason for this growth seems to have been adding a stumbleupon button to every page of my site.

I guess I will see how this sustains but for now things are looking pretty good for a new sustained source of traffic to paperairplanes.co.uk. Why don't you give it a go too?

Squeezing out Efficiencies

The growth of my cocktail recipe website has been truly scary this year. I am into my second year of >100% year on year growth in the site, I have doubled in volume since January and if anything growth is accelerating.

 The plan of course is to keep growing and doing well. I am currently at 2/3 of the bandwidth limit my web hosting company allow me which although cool is very scary when you look at last year's traffic distribution numbers:

The above December to October ratio is typical, I have seen it for the past 7yrs every year with December having roughly 3x the traffic of October (you can see the huge growth in last year's graph from Jan to Dec as well). In the peak day of december (new year's eve) I expect to be serving about 4cocktails a second (30% above my current recorded intraday peak) with an intraday peak of 7 cocktails a second. My code/databases can stand this but I am not a professional coder and want to be sure so I am working on making my code more efficient at the moment, adding more caching, planning (finally) to migrate to a very professional hosting package and place all images/css on a content delivery network like Amazon S3 (because whatever happens my current bandwidth is screwed).

The main point of this note is to encourage you guys to check out your code. I just recoded the displaycocktail.php script on my site (which accounts for 20% of bandwidth and >50% of files served). It turns out this script (which has grown organically and been coded in chunks since 2001) is horribly inefficient. I reduced the lines of code in the script by 55% to just 304 including all HTML and the weight of the page produced by 21% which will reduce my bandwidth usage by 4-5% which is cool and also has halved the SQL queries per page load on that page.

Efficiency is dull but I am hugely glad I did this and am looking forward to running through the rest of the site spring cleaning in Fall. If nothing else it will allow me to have a much smaller, easier codebase to maintain which is definitely good news!!!

Code Performance is Important

The puzzles that a fair few geeky companies post on their jobs pages to try and vet/encourage great coders to complete them and apply for jobs are quite cool (I definitely don't fit in the great coder bucket). Recently I noticed a fair few of them are focussed on code performance and so thought I would share my experience of code performance harming my site.

The graph above is the exit rate for users visiting my display cocktail pages on my cocktail site (according to Google analytics which has pretty graphics but some data issues) against time. The initial decrease in exit rate is awesome and primarily due to implementing the cocktail recommendation engine. Suddenly in mid July there is a massive jump in exits, this coincided with a process I was running for my facebook app really screwing up and slowing down every query run on my database :(. I shut that query down (although didn't realize what was happening for a month) and (for the moment) have given up on my facebook app to concentrate on the main site. After shutting down the process performance and exit rates improved instantly.

I don't monitor the performance of the scripts on my site anywhere near enough. Last weekend I built tracking to monitor the ranking of cocktails on my site weekly, pull out fast moving cocktails and so on. I have started logging keyword searches on my site too as of last week. This weekend a key focus for me is producing a performance dashboard summarized by hour of day and day of year. I am going to start monitoring the efficiency of all changes I make and see where I need to make improvements.

Cocktailmaking.co.uk has grown 3x since last year. The site also gets 25% of it's visits in December with 10% of those on New Years' Eve. I need to make the site much much more efficient before that date comes or my servers will be a smoking mess this year and I'll capture none of the revenue that I should.

Code efficiency is really really important.

Google Analytics Regular Expressions

I was using Google analytics regular expressions on Saturday to try and understand how my cocktail making relationship engine had worked out. As I was using the regular expressions I noticed that there were very few resources to help you get them right for Google Analytics so in case you are interested here are my tips.

First the regular expression variables supported by google analytics:

.  match any single character

*  match zero or more of the previous items

+  match one or more of the previous items

?  match zero or one of the previous items

()  remember contents of parenthesis as item

[]  match one item in this list

-  create a range in a list

|  or  ^ match to the beginning of the field

$ match to the end of the field

\  escape any of the above

Some real examples:

If you are looking for the page index2.php then your regular expression should be "index2\.php" you want to escape the "." with the / since that will make the regular expression run faster as Google will now only look for the "." character and not "any character" which is the special meaning of ".".

I have a regular expression "displaycocktail.php" within all my cocktail recipe pages. For the test group I was passing ?test=test on the end of that URL to google analytics and for the control group ?test=control. A couple of examples of urls showing up would be:

http://www.cocktailmaking.co.uk/displaycocktail.php/241-Slippery-Nipple?test=test

http://www.cocktailmaking.co.uk/displaycocktail.php/241-Slippery-Nipple?test=control

http://www.cocktailmaking.co.uk/displaycocktail.php/435-Blue-Lagoon?test=test

http://www.cocktailmaking.co.uk/displaycocktail.php/435-Blue-Lagoon?test=control

If I wanted to see just the control group I would use the reg exp "displaycocktail\.php/.*test=control" where the ".*" means match any number of characters at this point in the regexp.

Hopefully this (esp. the working examples) are useful for you to get started.

Cocktail Recommendation: Part 4 - the results

Wow did it work or what! The cocktail recommendation engine I produced earlier this year has been a fabulous success. I set up an AB test of the cocktail recommendation by randomly assigning my visitors to either see the cocktail recommendation engine or not and the main target was to reduce the bounce rates of visitors to my cocktail recipe pages (both buckets contain c. 1million page views).

The above graph shows you the overall impact of the test across all my cocktails with 100days of data. This impact is diluted because of the volume of cocktails for which I don't have enough data to produce cocktail recommendations so below is a list broken out by cocktail id (I have removed the names since work people see this blog and some are naughty). The cocktails in the list below are essentially the cocktails found as the first 10 here (you are warned... that page contains rude words) under the tab "Graph of cocktail recipes in order".

On average for the top 10 cocktails the recommendation engine reduced the bounce rate by 16% with some cases (esp. slippery nipple) having an impact as high as a 31% reduction in bounce rate for the page.

Tickle.com - impressive revenue generator

I am a little bit of a sucker for anything that makes me feel clever and so for the first time in a very long while I clicked on a banner ad yesterday. The advert took me to tickle.com and an IQ test.

This IQ test was pretty cool and took 12 pages to complete. Once I had completed the test it through me into a string of 6 co-brand sign ups before I got the results of my test. Each page carried 3 cpm banners from rotating sources. I can get a $1cpm so I expect they should be able to get the same or better. Just the banner ads earned them $0.036 from me doing the test. Each of the 6 cobrands make >$1 per sign up so again low balling it let's say 1 in 10 signs up to only 1 that's another $0.1 a visitor from one test their earning is at least $0.14 and they claim almost 0.5billion tests served, that's $70MM in revenue with the conservative estimates above.

This however isn't the end of the game. Today I received the following email:

Another smart move, I clicked and visited their site, being pushed through multiple pages of co-brand sign ups again, returning to the site and being merchandized a bunch of other pretty cool looking tests, which the internet marketer side of my brain stopped me from taking but I strongly considered.

Tickle.com is owned by Monster.com so it isn't that surprising that they are really professional and good at what they do but it's pretty cool to see such a smoothly operating affiliate/cpm business model out there where arbitrage traffic purchasing is a real opportunity. Great job Tickle.com and keep it up.

Always Use The Keyword In The Title

Don't you just love it when a plan comes together :)

A week ago today I wrote about an error I had made with targetting the keyword "cocktails" on my cocktailmaking.co.uk website. Despite my little project recently to boost the backlink love on my site using the keyword "cocktails" I did not have the word "cocktails" itself in any of the important places in my homepage. I changed that exactly a week ago and now have moved from position 9 to position 2 for the search term cocktails in google.co.uk (although no similar success on .com as of yet).

This has also resulted in a really awesome boost in my traffic as the graph above for this month shows (I made the change on the 22nd). So more thoughts on that front coming in the future I guess but backlink love is nothing if the relevant keyword isn't on the page being backlinked... bear that in mind :)

User Targetting Rocks

DVD play and Safeway's just got a massive thumbs up from me for awesome and timely user targetting that just set me thinking. I am a regular purchaser of DVD play dvd's for 99c. Directly after shopping I often go to one of their machines and I take a movie home I chose not to watch in the cinema. I then return it the next day when I pick up milk or dinner or whatever.

I haven't used the machines for a month or so due to being away, watching some stuff from google video and so on. I went into Safeway and bought my usual groceries and got a token that gave me a free movie rental. I used it immediately... took out the shooter (an awesome movie where Mark Wahlberg acts instead of just taking his shirt off). I loved the movie and have been reminded I love DVD play and will totally go back again for another movie next Sunday... GREAT JOB on user targetted advertising.

Now I guess this isn't internet targetting but I can totally think about how this could be amazingly well used by all manner of ecommerce websites when someone completes their checkout... the majority of the time I checkout I get no cross selling, upselling and certainly not targetted based on my past actions. So come on guys... pick it up. There are a lot of sites I use regularly who could do a better job :)

Schoolboy SEO Error

My sites live and die on SEO. For cocktailmaking.co.uk 80% of my traffic is from SEO but for the key cocktail search terms I don't appear in the top ten. For search term "Cocktails" (see image above) I am currently 32nd on Google and for search term "cocktail recipes" I am currently 17th in the US (although top in the UK). I accept this has something to do with my domain having ".co.uk" and being on uk servers but this hasn't hindered me getting #1 for paper airplanes.

So I have been working on a plan to move up from #32 in the search term "cocktails" esp. since as you can see above it is a search term 5x the size of paper airplanes so even a top 10 position would be amazing. My cocktail widget now has helped me get close to 17000 back links. The cocktail widget backlinks amongst those have the anchor text "cocktails". Sadly this hasn't move my position on the term cocktails at all.

So looking at my title and description text I realized I didn't use the word "cocktails" at all, not once. Therefore I have now added the word cocktails to the title and description meta tags and also twice extra in the body of my text... I hope this will see a movement for me in the search results for "cocktails". We shall see, watch this space for reports.

Google Adsense Defaults

Recently I noticed that only about 56% of my page views are having adsense ads served on them and I am serving a lot of Google Adsense Defaults. Looking at the distribution of page views on my site and where the Google Defaults were being shown was very telling. 

The above graph shows the % of times google shows an adsense ad when I serve the google adsense skyscraper code on the 1st, 2nd, 3rd, etc... page a user views on my site. It also shows the % of my page views that fall against each of those buckets. ~25% of my page views come on the first page viewed by a user on my site and 50% of page views come on the 6th and greater pages viewed by my users on my site but on that crucial bucket Google is serving AdSense ads <20% of the time.

It seems Google Adsense simply is uninterested in users who have seen an adsense placement 4 times in a row on my site and not clicked. In this case they roll in your Google Adsense Default selection. That seems pretty fair to me and tallies up with what I have seen in past analysis. What I don't like is that Google only lets me have a static A HREF and IMG banner as my default... that is pants. I would like to fill in with CPM ads from a mix of Burstmedia and Valueclickmedia (my two favourite CPM networks). So what I am going to do now is to swap out the majority of Google impressions for users seeing their 5th page or better but keep a small Google rotation in there so I can monitor if things change. I am going to do that when I get home from my holidays :)

The one thing I would like to change in this market today is for CPM and CPC networks to have API's via which I can reliably pull my earnings and optimize what I am doing. That would revolutionize how I make revenue off my site and I estimate increase my earnings by c. 85% through serving the right ad to the right person at the right time. If anyone knows how I could get this set up I would be really stoked so let me know :)

My Photo
Blog powered by TypePad

my flickr tag cloud