Xbox 360 Live Gamercard
Several years back I was an avid Xbox 360 fanboy. I had also just made a couple of Facebook apps as a freelancer. At the time, there was an unofficial Xbox Live Facebook app which just showed an image containing your gamertag, picture, score and recent games as a section on your profile. This data came from a now-defunct website which was a member of Microsoft’s Xbox Community Developer Program (XCDP). Only XCDP members were allowed access to the Xbox Live API.
While unable to access the official feed, I found an unsecured data feed somewhere within one of Microsoft’s servers. That night I woke up at 2am with the urge to start coding, so I got up and created the majority of what became Xbox 360 Live Gamercard (the name helped me cover all searches in the app directory).
The app used Xbox Live data to show how many achievements you unlocked in each game on a tab in your Facebook profile, publish to the news feed when you unlocked new achievements in games or went online. There were also game reviews and a tracker that showed who was online and what they were playing.
Success #
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.
#Code 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.
#Lessons
- Hire a designer!
- Don't invest too heavily in an appstore / platform / ecosystem / API. It's a very unsafe place, with a ruling company which changes its rules at the drop of a hat. They invite you to build your businesses in their garden, but every so often they remind you that they are the lord of the land, upon whom you now depend. They will only listen to their largest clients, and constantly change their rules at short notice. Life is good at the beginning, but soon the company stops being interested in how it treats smaller developers. When they think you are no longer welcome on their platform, you have no real chance to appeal and certainly no employment tribunal for your loss of earnings. You are working in a dictatorship. Thankfully I didn't significantly scale up my hosting requirements. I was there when Facebook apps made money for indie devs. I missed the Apple App Store boom though, and despite having a few Android apps, I don't make money from them.[^1]
- Be prepared for success. Build for scale. A little optimism! Use the correct tools.
- Be more open to business and job opportunities. I'm naturally very skeptical, so it's hard for me to agree to anything, but I should at least speak to see what people can offer me.
- Be more privacy conscious: The app actually became a massive public map of Facebook IDs (and therefore real names) to Xbox Live gamertags, which really was a privacy issue which I didn’t consider.
- Spend money to make money. But not always. My costs here were super low, but I could have invested to make something bigger rather than clinging on to my shitty VPS.
[^1]: 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.
- Next: They Have Your Info