Recent Facebook Changes Indicate Maturing Platform

Filed under: apps, facebook — klep @ January 30, 2008

Over the last several weeks, Facebook has gradually announced major changes that all point to a new phase in the Platform’s life. While some developers bemoan some of the more restrictive changes, I think they are more likely to help developers that write good applications.

Restrictions on Cross-App Promotion

The new year introduced the first subtle shift in how Facebook dealt with spammy applications. Previously, Facebook would announce new caps on viral features that were easy to abuse. Hard limits were put on notifications and requests, for example. With the January 1st announcement, Facebook took a more proactive approach in looking at how specific spammy applications were circumventing these limits and making more complex changes.

The problem they were addressing was that companies that try to cross promote applications were treating a user installation as a license to send notifications and feed items regardless of whether they applied to that application. For example, a user would install a movie app and suddenly be receiving notifications and sending feed items about completely unrelated apps. The users were being treated as extra spamming capacity.

Facebook’s changes to prohibit such behavior is a big win for applications that are useful and compelling on their own. By cutting down on overall noise and providing users with more assurance that installing an application will not immediately result in random things appearing on their profile, the acquire-users-at-any-cost apps lose a round to the useful apps.

Limiting Profile Boxes

I’ve heard two explanations for why Facebook is forcing users to choose a subset of their applications to show on their main profile page. The stated reason was that users appreciate the simplicity and cleanliness of Facebook, and applications were creating clutter. That may be so, but why not let users decide whether or not their own page is cluttered? If apps are just an ugly nuisance, why have them at all?

More likely, there was also an element of performance issues on profile pages with many applications. Facebook caches profile boxes on behalf of the application — a major advantage of the Facebook platform over OpenSocial. However, once you have 20+ applications on your profile, you have a huge page. Since the profile boxes are cached, the app developer has nothing to lose by including lots of graphics and text. Facebook pays the bandwidth cost, and it seems they were growing somewhat tired of that.

The upshot, regardless of the reasons, is that this has caused us to re-think the profile box and its purpose. Now that apps are competing for space on a user’s profile page, it forces app developers to really think carefully about what goes there. Instead of creating a profile region that simply shows the user’s status with the app or tries to get their friends to add it, the apps that will retain a place on the profile will give a more interesting set of interactive options for both the owner and the viewer. The change has also made us question whether profile regions are always applicable. There are certain classes of applications that may no longer want to bother with a profile box if the odds of being relegated to a secondary page are high.

Restrictions on Misleading and Passive News Feed Items

Along the lines of the deeper spamminess controls described above, Facebook also announced some further abuses that would be prohibited. Apps were misleading users into interacting with them by implying that they had a “message” waiting. The word “message” is no longer allowed, and I look forward to seeing what synonym of message is banned next. To be honest, I thought it was a joke when this was announced — why the word message? I’m guessing that there were some very specific misleading feed items that they wanted to block by issuing a blanket policy, but my hunch is that this particular change won’t solve the problem for long and instead we’ll see Facebook enhance the Registered Feed Items system so that they have control over individual apps sending large amounts of feed items.

Similarly, passive feed items (”Frank was kicked in the face”) are now a no-no. The tricky part of this is that if the action actually happened (a friend of Frank’s used the app to kick him), the feed item is legit. Abuse of this style of wording, however, has restricted the feature so that feed items can only be sent on behalf of the person interacting with the app (”Joe kicked Frank in the face”).

I can’t really put a positive spin on this loss of functionality, except that it means less noise in new feeds. The real shame is that all good Facebook apps are about people interacting, and now you can only send feed items when each user explicitly performs their part of that interaction.

Batched API Calls and JavaScript Client Library

Facebook continues to show technology leadership with the Batch API and JavaScript API. These innovations both show that Facebook is responsive to the different ways that developers want to interact with the platform. Unfortunately, there’s a lot of confusion about the JavaScript API right now, but I think that’ll settle down once people realize that Facebook did not just join OpenSocial!

Application About Page

As one of the first developers to take advantage of the Pages API (for our project with OpenTable), I was pleased to see that application About pages are now Pages with a capital-P. When the message went out announcing it, I thought somebody made a mistake and sent out a draft by mistake — the announcement started:

Starting tonight, we are converting Facebook Application About pages to use the Facebook Pages infrastructure and format.

It sounded like waaay too big of a change to happen with mere hours notice, but the transition went smoothly. I think Pages got ignored during all the hubbub over Beacon, so I’m glad to see them become more prominent. As Pages get more use, we’ll see more utility-like applications for Page authors to promote and construct their pages, much like our own SuperShare application, which I wrote in a few hours after a friend expressed his frustration over the tiny little “share” button on Facebook.

What’s the Real Goal?

Several months ago, I was talking to someone who invests in Facebook-related companies and I casually mentioned how it seems that Facebook releases these small changes that sometimes seem inconsequential, but when you look back a while later, you can see that there was a goal that it was all building to. He asked me for an example and I felt dumb because none came to mind! But now I’m vindicated because I think when we look back at a January full of tweaks to feed items, profile changes, and new APIs, we’ll see that the real goal was in bringing the Platform out of its “let’s acquire users as rapidly as possible” phase and into “let’s really build interesting applications” phase. As a Facebook developer, I couldn’t be happier about that direction.