Application Design Best Practices
From Facebook Developer Wiki
Contents |
Facebook Platform Best Practices: Designing Your Application
There are many ways to design a Facebook application. These best practices offer advice on designing your app so it provides the best user experience and stays within our Platform Principles and Policies and Statement of Rights and Responsibilities.
Making Fast Applications
You can make your application render swiftly on users' profiles if you heed the following advice. Faster loading apps make everyone happy. Your users are happy because your app loads quickly and painlessly. Facebook's servers are happy because they have to do less work to process your app's requests. And in the end, you'll be happy because your users will enjoy their experience more.
- Use FQL instead of API calls whenever possible. The Facebook Query Language lets you drill down to get the specific Facebook data you need, reducing the number of API calls you need to make and the amount of bandwidth to render your app.
- Preload your FQL queries, so the data gets returned along with the FBML.
- Use FBJS. Use AJAX to load only what's needed, instead of doing a full page load each time the user does something.
- Cache CSS and JavaScript. You can reference your FBJS and CSS scripts so they get cached on your users' browsers.
- Paginate! By breaking your app down into a series of pages, you allow your FBML to render more quickly, not to mention it also makes your content easier to digest by your users.
Creating a Good User Experience
Facebook Platform gives you the tools to create valuable, engaging social applications. The only limits are your imagination – be creative, focus on your users, and try out your ideas. Here are some characteristics that we’ve noticed are part of many relevant, engaging, successful social applications.
- Create friendly, usable applications. Give your users a great user experience –- focus not just on design and UI, but also on workflow. For example, let usability drive virality; rather than requiring users to immediately send content-free invitations to an application, which often drives users away, enable them to invite their friends at points when they’d like to engage with them. Be mindful of these other issues regarding invites:
- Don’t publish stories that force users to install an application before the user can view the content. These sorts of stories will have their News Feed story ranking significantly demoted for display to users who don't have the application installed.
- Don't force users into a loop if they choose to skip past the step for inviting friends.
- Don't force users to invite other friends or perform other social actions in order to unlock features of your app.
- Don't use invites for ranking purposes.
- When using invites as part of an application's function, such as user ranking, make sure there are other ranking methods that can replace invites.
- Using invites alone increases the chances for the application, and the user's rank within it, to lose value.
- Engage your users with social content. Give users a reason to use your application and return to it frequently -– use their social context to provide information they’re interested in. Involve them in social interactions, or present interactions among their friends. Offer fresh content frequently, particularly if it’s generated by their friends.
- Use the integration points into Facebook well. There are a rich set of integration options available to you, and you can select the ones that are appropriate for your application and for your users. Always keep in mind the value you’re adding for users.
- Develop and iterate. When building an application on Facebook Platform, you have access to all sorts of metrics on how people are using your application. Use that knowledge to constantly enhance your application so you’re giving users a truly valuable experience.
- Incorporate privacy. Users are more comfortable sharing information when they know how it will be used and who will have access to it. Privacy is an asset –- by incorporating it, your users will feel safer using your application, and will provide more relevant content.
Following the Terms of Service
While we strive to enable you to create a broad range of applications on Facebook Platform, we're committed to protecting our users and our site as well as facilitating the best possible user experience. To make sure you’re following our policies, please carefully read our Facebook Developer Terms of Service. Some points in the Terms of Service that relate to the design and promotion of your application are detailed more specifically in the Facebook Platform Application Guidelines, which is also a part of official Facebook policy. We enforce these guidelines and the Terms of Service in order to protect users and optimize their experience on Facebook.
To provide your users with the experience they’ve come to expect from Facebook, here are some key points to remember:
- Facebook takes privacy very seriously, and so do our users. In order to gain users’ trust, you must treat users’ privacy with the same respect we do. Our Terms of Service requires that, if you collect any personally identifiable information directly from users, you must create a privacy policy at least as favorable to users’ privacy as our privacy policy. Several foundations offer free policy generators -– take a look at TRUSTe for models of online privacy policies.
- To protect our users’ privacy and to make sure the information you show to your users is accurate and up-to-date, you must generally request user information from Facebook each time you want to show it to a user. You can also only show information to a Facebook user if you retrieved it on behalf of that user.
- All representations of user activity by and through your application must reflect your users' real activity within your application. Facebook does not tolerate misrepresentations of user actions or any other deceptive behavior by applications. You cannot have one user’s identity represent activity that originates within another user’s session in your application.
For example, when making a call to the Facebook Platform API, you must use the session key of a user who is actively using the application. You cannot use another user's session key. - If your application permits file-sharing, you must post and implement a copyright policy. Facebook offers a sample copyright policy you can adapt and post.
- Your application can’t infringe on anyone’s rights or intellectual property, or contain adult content or illegal content, gambling, promotion or sale of alcohol/tobacco/firearms. It also can’t phish or generate spam.
You can find more details on these and other terms in the Facebook Developers Terms of Service. Please read these terms carefully and adhere to them to provide the best experience for your (and our) users.
Good luck, and happy developing!
