Facebook's (Evil?) Application Strategy
Facebook's (Evil?) Application Strategy
As many of the people who read this journal already know, I'm pretty active in several areas of Facebook application development - with a project I'm doing at my job (the Jobster app) and some projects I'm doing on my own for fun (Favorite Games and some others I haven't launched yet).  During the time I've spent working in and around Facebook, both as a developer and as an observer of a full-fledged business partnership, I feel like I've gained quite a bit of insight into their operating practices and strategies.  The jury is out about whether or not Facebook itself will break out of it's current classification as probably-just-another-social-network and launch into something entirely new (my gut says it will), but I feel like making a prediction about a new business model that the folks there will likely soon introduce.  This article is mostly meant to be a brain dump for me more than anything else.  I'm not a practiced market analyst or web prognosticator, I'm just exploring some ideas that have recently struck me as interesting.Let me start off by saying that the Facebook application platform is quite slick.  Whether or not you agree with the way it opens up the Facebook user base to a never ending stream of product shills and bandwagons and fads, you have to admit that it provides a very robust way to tap into an existing social network and build a user-powered product.  The FBML and FQL APIs are nicely feature complete, decently documented (although the API tends to change often, with little warning), and have become reasonably stable and fast.  Using 3rd party libraries, a developer can go from zero to fledgling Facebook application in just a few hours, and work toward building a feature set that could reach millions of users.That last part is the interesting thing.  Depending on who you ask, Facebook applications can be valued by the number of users who have them installed, up to $.30 per user for large applications, and maybe even lots more for particularly interesting ones who may have a smaller but growing audience.  Over the past few weeks I've seen numerous posts on the Facebook Developer's message board offering applications for sale, and offers to buy.  There have been an emergence of speculator companies like Slide who are buying up the biggest and most popular applications, and there are even individual entrepreneurs who are hiring developers and buying up batches of promising applications.  I've even heard rumblings of VC firms and angel investors seeding bits of money into the space.  It's pretty obvious that there is an emerging marketplace for Facebook users and applications that reach them.There's a problem with all of this buying activity, though.  One feature that is blatantly missing from the Facebook developer platform is the ability to transfer API keys for applications.  Let me explain.  An API key is given to a Facebook user when they first submit an application on Facebook.  This key is then used throughout the application, tying Facebook users to the application when they choose to install it.  Users of an application are bound to the API key they agree to accept when they install it, and API keys are bound to the developers who provision them.  Therefore, if a Facebook application developer decides to sell his application, there's no way to transfer the API key to the purchaser of the app without losing all of the application's users.  To put it simply, API keys, and with them the users of the application, are non-transferrable.  Since the value of the application is in its users, what must usually happen is the API key remains with the person who created it, and a contractual obligation is included in the sale that gives the purchaser access to the key through the originator's account.  This is risky, though, because if that user deletes the API key (by accident or on purpose) all of the users of the application are lost, with no recourse by the company who buys the application.  In essence, there's no good way to transfer the control of a Facebook app without losing its value.Facebook's official stance on this seems to be that if a user sells an application, the purchaser should create a new API key and transfer the code, database, and user information collected into a new application of the same name.  The problem with this is there's no guarantee that you will be able to regain all of your user base, since there's no way (other than them returning to your application's specific URL) to reach them to let them know that they need to accept a new API key and re-install it to continue to use the app (and thus get counted in the application's numbers).  I can be said that they have a reasonable argument against this kind of thing predicated on the idea of protecting the privacy and user experience of their members; but that's a weak argument at best, especially in the case when a larger group can take over the application and provide more useful features. When you consider that along side of the fact that Facebook actively deletes accounts that are clearly not actual people, and explicitly does not allow companies to make corporate accounts, it really seems likely that they're planning on taking a piece of the action of the marketplace of applications they're creating.I don't believe that the complexity of the process of transferring an API key is a preventative factor, either.  There doesn't seem to be any serious security or architectural reasons I can think of that would make an API key transfer feature difficult.  Facebook isn't a small organization engineering-wise.  When I visited them early in the year I believe they had over 50 software developers - more than enough to undergo some pretty daunting architectural gymnastics.  What seems to make the most sense is that Facebook is probably working on creating a way to sell applications which requires a fee payout to Facebook (for an amount which would most likely be tied to the number of active users).  This idea doesn't seem too big of a stretch when you consider the steps they've been taking to move toward a "web operating system," or a "google of people," as well as their own internal promotions encouraging developers to replace popular features of Facebook with their own applications.  If successful, the value in having this kind of a marketplace would be quite significant, especially as the larger companies begin to dip their toes in the Facebook application space.It'll be interesting to see how this plays out.  You can find plenty of horror stories of developer accounts getting disabled for "misuse," completely orphaning the applications they've created, as well as their users.  There's a specific way Facebook wants you to develop applications on their platform and they are unforgiving about it, to the point of account termination for non-compliance. It's worth the while of everyone who's interested in entering this space to read the terms of service and understand them fully.  Facebook sometimes seems merciless about enforcing their policies.  It's easy for them to hide behind their "just protecting our users" stance.One thing's for sure, the folks at Facebook hold all the keys to this emerging marketplace.  You can bet that they're going to find a way to monetize it, and keep it under their tight control.  I just hope that they're not evil about it.