Archive for May, 2007

ARPU and affiliates

Wednesday, May 30th, 2007

The Average Revenue per (active) User we’ve achieved is $0.05 per month. I actually think there’s quite a lot of room to increase this number too, through offering more variety of adverts and getting at least some advertising sold on a CPM basis rather than all PPC.

Anyway, this gives us an ARPU (active users) of approximately $0.60 per year, although the ARPU will be a bit lower as of course some of our members will become inactive over time. In fact, I think our churn may be as high as 50% per year.

So the question is: what price can we pay to acquire users through our affiliate program? Well I’m pretty happy to offer an average of $0.20 (we may pay slightly more for couples/women and less for men to try to balance out the sexes). I think that at this rate we’ll pretty much break even on a simple ARPU basis and also assuming a 25% conversion rate then we’ll be paying a competitive $0.05 per click to webmasters (I looked at our Adult Friend Finder affiliate account and we’ve averaged $0.06 per click).

However it’s not as simple as this. Each new user has an SEO benefit and we also have a very high rate of users recommending the site to others (both informally and via our recommend a friend feature).

Finally, we also have a problem that some areas of the world really need to be seeded. In particular we just don’t have enough members in the USA to make any state viable.

So I think that an investment of say $20,000 on an affiliate programme would show a positive return within about 6 months of the spend based on the straight ARPU but would also have a deeper positive effect thru SEO and getting us into new geographies.

PR doesn’t work!

Tuesday, May 29th, 2007

Melanie UK Swingers was one of the first free adult social networking sites, founded in 1999 and still running today (and still free!). According to their homepage they have been featured in The Independent, News of the World, The Times, Loaded Magazine, The Observer, The Guardian, New York Times, Marie Claire, Scotland on Sunday, Talk Sport Radio and Zoo Magazine.

Here’s the interesting thing: after all this publicity and 8 years they have fewer members than Fab Swingers has after 8 months!

Proof once again that PR really doesn’t sell.

I have made the odd attempt to get some PR for Fab Swingers but I now think that it’s a complete waste of time and I’m just going to focus 100% on direct marketing which has been going great so far.

Python and phpBB integration

Sunday, May 27th, 2007

I’ve finally finished the pbpBB integration with the Fab Swingers codebase. You can result in our new Swinging Forums!

It turned out to be a hell of a lot of work! First, I’ve switched Fab Swingers over to using the phpBB session cookies and session tables. On examination the phpBB system was a little bit slower than my home grown system but was more secure and would also make it easier to use a cluster of servers so it is a bit more scalable.

There were a couple of things that were a bit tricky when I was importing my users to phpbb_users. To convert a password for use in the user_password row I did which took me a while to work out. Also, to convert a Python DateTime object to the time format used by phpBB I used int(mktime(lastvisit.timetuple())) where lastvisit is a DateTime object. This also took quite a lot of swearing to get right!

Logging users in seemed really hard but in the end was quite straightforward. All you need to do is create an _sid cookie and an entry in the phpbb_sessions table. The only slightly tricky bit is the format of the user’s IP address in session_ip which is in hex. This bit of Python will give you what you want: ‘%02x%02x%02x%02x’ % tuple(map(int, ip.split(’.'))) where IP is a string like ‘′.

I also went thru phpBB and changed every ‘profile’ and ‘pm’ button to take users to the main Fab Swingers site, the login now redirects to the Fab Swingers login page and I also removed quite a lot of the database intensive statistics from the homepage.

A forum is the heart of a community site and although the whole thing has been a complete pain in the ass I think it has been well worth doing.

New old domain

Saturday, May 26th, 2007

It looks like I’m going to be able to buy a domain name with my “swingers” keyword in it which was registered in 1999! From experience in my day job I am absolutely sure that old domains carry a lot of weight with Google. However I’m not very sure what to do with it.

The first option is that I could simply rebrand the whole site and shift it to the new domain. The negatives of this are that existing members and the word-of-mouth buzz would be effected, we would also lose some of the online marketing that I’ve done already and finally I’m not sure if the domain owner and servers changing may kill some of the value of the old domain so there is a possibility that by changing domain name I could end up in a worse position in the short term.

Option two is to simply create a new marketing site on the new domain. I could promote Fab Swingers and some of my affiliate links. This has the disadvantage that it’s much more work to do however as I’m writing this I think it’s clear that this is the path I have to go down. There’s no fun like work!

DMOZ Open Directory

Friday, May 18th, 2007

I am delighted to say that I am now an editor of DMOZ!

I’ve already made a good start of sorting out the Swinging section however it will take some time before the edits become public.

It’s quite a strange role because normally I have very strong views which I sound off about but as a DMOZ editor I have to be impartial. I am enjoying it though and I would like to take over some other categories in due course.

Fab Swingers’ staff doubles!

Monday, May 14th, 2007

I’m delighted to say that Anna has joined me today. She’s going to be helping me with marketing and community management mainly but it will also be great to have her help on sysadmin when I’m away.

She’s made a great start by writing some copy for the Swingers into Blindfolds section of the site. It’s sexy and funny which is exactly the style I’m trying to achieve with the site.

The other big thing is that she’s made me realise that the Swingers Forum we have at the moment just isn’t good enough. A forum is absolutely at the heart of a community site so it is very important to do it right. After much thought we’re going to switch to phpBB. It’s going to be quite a bit of work and no doubt the subject of a future blog post.

It really does make it so much easier having someone I can talk things over with. It’s also making me get some more formal systems in place, I’ve set up some Google Spreadsheets to handle our project planning and to-do lists.

Google getting us new members!

Tuesday, May 8th, 2007

I’m delighted to say that Google has finally started sending us new members! We’ve had 20 in the past 7 days as a result of Google searches. It took about 8 months and I have to admit I was beginning to wonder if we were ever going to get coverage but I guess it does just need a bit of patience.

We’ve also been doing quite well with Swingers in Ireland recently and I would really like to see if we can really build up this market. It’s pretty badly served and there is virtually no competition so it should be relatively easy.

Performance issues solved (for now!)

Monday, May 7th, 2007

I’m delighted to say that the server is now zipping along very nicely.

First off I merged the excellent CherryPy Status Tool into my code. This quickly revealed that the performance problem was not with the pages that CherryPy was producing (and by implication MySQL was also in the clear).

I then had a suspicion that the it might be a network problem. But when I ran Apache benchmark from the localhost the server was still slow. I then tried running ab again but this time on an Apache server that was serving plain HTML - and this was also very slow!

It was now pretty clear that the problem was with Apache. I stared by enabling compression by using mod deflate. The statistics are very impressive for the speed-up.

This didn’t solve the problem for me, so the next step was to enable mod info so I could see what was happening. I also set ExtendedStatus On to give me a report that I could understand! The report was very clear, I had ran out of workers.

I was using the Debian default prefork MPM which had the MaxClients set to 20. I doubled this to 40 and suddenly the server began to fly!

I’ve now got some pretty cool tools set up for measuring my performance bottlenecks and I’ve also made some good optimisations so I think I’m all ready for lots more users.


Sunday, May 6th, 2007

The good news is that the marketing is still going really well and we’re adding users and traffic at a splendid rate.

The bad news is that the server isn’t coping that well. Although I have made some major improvements the homepage is still taking an unacceptable time to appear. Today, I tried running ab locally on the server and the performance still stank so it’s not a network issue.

According to ‘top’ it is Python that is hogging the CPU so my suspicision is that the source of the problem lies there. But really I’m going to have to get some decent profiling system up and running so I can find out what the problem is.

Spoke too soon!

Wednesday, May 2nd, 2007

Well I spoke much too soon about the CherryPy 3.0 upgrade going smoothly!

Unfortunately the onSessionDelete hook has been removed between 2.2 and 3.0, and in addition:

  1. This isn’t mentioned in the Upgrade Guide.
  2. It doesn’t raise an error, it’s just silently ignored.

This resulted in us showing nearly a thousand users as being online - which would be great if it was true!

To be fair to the developers when I posted to the list I did get a helpful response however after a lot of messing around with the session I’ve decided to remove it completely. Instead of sessions I am not basically using cookies (although with a few twists for security) and the net result will be much faster and more scalable code.

As the code presently stands I would be unable to cluster the servers but then again I am very far from that and the authentication code is completely abstracted out so it would be very easy to change again in the future.

The other unrelated issue I had today was with Clicksor. They decided to publish some ads on my site with very annoying pop-up dialogue boxes. I’ve just decided to suspend all Clicksor advertising for now and I’ve published an apology.