user‘s Facebook profile. The scores and achievements for recent games are shown. The gamerpoints image was not loading from Microsoft that day.
At its height, I had nearly 2 million registered users, which may have been the majority of Xbox Live subscribers on Facebook, although the number of monthly active users was a tenth of that. Microsoft’s Xbox Live product manager contacted me saying he thought I was screen-scraping Xbox.com and would rather I become an XCDP member, so I got access to the real feeds.
My initial monetization stream was stupid banner ads. AdSense didn’t work on Facebook canvas pages which have no static content. Instead, Facebook apps were full of this “You have 7 love notes” nonsense from small ad networks, but surprisingly people actually click on them, and the payout was quite good. A small amount also came from the Amazon Associates program: The app would link to Xbox games on Amazon, but after clicking the link I would receive 6% of whatever the user bought in the next 24 hours. While I sold video games, referral fees also came from the panoply of junk people bought after using my app, such as a toothbrush which sings we will rock you, sex toys and a copy of Mein Kampf. Unfortunately, Amazon paid by sending me a dollar cheque, which caused massive confusion and fees at the bank.
There were also some small companies who paid for advertisement on the app. However, looking back on it I wasted a huge opportunity. I had a niche market and a good product, but I didn’t act entrepreneurially. I should have tried to sell it or make way more money or something. I don’t know.
I am embarrassed to say that I wrote the app in ASP.NET and C#. This was not ASP.NET 4.0. My app had massive viewstate fields and controls which didn’t play nicely with the ever-changing Facebook canvas spec (a weird modified version of HTML). I also used SQL server, but the express edition which limited the database size to 4gb. Yuk. I really hadn’t expected the success. The number of people made the database size balloon and the ASP.NET code was horrible to maintain.
Anyway, my profits began to decrease as the golden age of Facebook app ad revenue came to an end. I didn’t bother to maintain it regularly due to the presence of a scary competitor with a $2m seed and a superior app which also worked for PS3. Things were breaking and I was receiving terribly spelled insults by email, but I actually earned more from ad clicks on days when the site was working badly.
The biggest technical flaw was the updater. This was supposed to publish any new achievements to the users’ profiles. That meant calling the API for each gamertag and comparing the scores with those in the database from the last update. However, as the number of users skyrocketed, the length of time it took to loop through and check every user became too long, especially because most players wanted their updates instantly. I probably should have upgraded the server and database, but windows server is expensive, and the emails from users pissed me off, so I just allowed manual updates. The upside was that manually updating made users navigate to the app and see the ads. I’m so evil.
One interesting store I’m happy with at the moment is the Pebble store where many of the apps are free and open source. Pebble currently profit from hardware sales rather than keeping a tightly controlled app store. ↩