Best Practices for Mobile Games

Overview

The Facebook platform extends beyond the web to provide a personalized, social experience for players on mobile platforms including iOS and Android. Games can integrate with Facebook on mobile to take advantage of social channels to drive distribution, engagement and, ultimately, revenue.

Facebook's easy-to-implement technology can be a powerful driver of traffic to your game, but there are some specific challenges faced by mobile game developers when implementing key Facebook features. This document will discuss our best practices when building a social mobile game to help you avoid common mistakes and take full advantage of what Facebook can offer.

These best practices have been collected from successful mobile games already implementing Facebook to great effect. They are proven to improve results on both the Apple App Store and Google Play.

The best practices fall into four main categories:

At the end of this document is a comprehensive checklist, summarizing the best practices.

Facebook Login

Getting a mobile player connected to Facebook is a proven method to increase engagement within a game. Socially enabled games keep players engaged for longer per play session, extend the total lifetime of a player within the game and lead to better overall monetization. A good Facebook Login implementation can see conversion rates upward of 85%, connecting more players to a personalized, social experience. So it's important to get Facebook Login right within your product.

In addition to our Facebook Login Best Practices, there are some best practices specific to mobile games.

Make login prominent

Facebook Login is proven to lead to improved discovery, player engagement and monetization for mobile games.

It therefore makes sense to make the Facebook Login flow prominent within your game. It is nice to have Facebook functionality within a settings or preferences menu, but we suggest a prominent position of the Login button at the App launch - encouraging people to connect. Some of the most successful games taking advantage of the Facebook mobile platform place their login button on the very first screen inside the game and clearly explain that the game revolves around Facebook functionality.

Upsell the value of connecting with Benefits and Incentives

In addition to making it easy for a player to find the Facebook Login functionality within your game, you should clearly communicate the benefit your players can get in exchange for connecting to Facebook. Try to answer the question "Why should I connect to Facebook?' with a clear up-sell message and call to action.

Common messaging includes mentioning that the player can:

  • have a personalized in-game experience,
  • sync game progress across platforms,
  • challenge friends,
  • participate in weekly tournaments and see socialized leaderboards,
  • ask for help and support to progress easily in game.

Login is the only activity you can incentivize by policy, so explain clearly the benefits player can get by logging in with Facebook (it could be free coins, free items, free progress in game).

Game Design

Once you've successfully connected a player to Facebook, there are a number of ways to structure your game to take full advantage of the social data Facebook provides. By making your game social by design, you naturally give people incentives to spread your game organically through Facebook social channels and improve their experience by letting them play with their friends.

Provide social context by default

Similar in sentiment to the Make login prominent best practice, it's recommended that you make the player's personalized social context prominent within your game. When a player installs your game, you have access to their list of friends that also play your game. Take immediate advantage of this and make it easy for them to connect to their friends within the game. Don't force people to recreate existing friendships within your game. Instead, display their existing friend connections right away.

Build a continuous experience

If your game is available on more than one platform (that is iOS, Android and games on Facebook.com) or for more than one device on a single platform (that is, iPhone and iPad) it makes sense to provide support for a continuous gaming experience for a player, regardless of the device they use. A continuous experience means that the player's state within the game, including game progress, purchased or obtained in-game items, any in-game currency balance or general game play parameters are maintained across play sessions and multiple devices. You achieve this by implementing the ability to save and restore game state from a centralized server, which you maintain.

For example, people who have played your game on Facebook.com might want to continue playing on their phones. You want to ensure any progress or items, either earned or purchased within the game on the web are not lost when they transition to mobile.

As Facebook serves as a ubiquitous identity service across all these platforms, you can use a player's Facebook ID to recognize them across devices and unify their experiences.

Distribution

Our organic social channels help grow your game by driving traffic to your app. By optimizing the use of these channels, you can significantly increase the number of installs and engagement these channels are accounted for.

Feed

Feed publishing lets players post messages about your game to the timeline and to their friends' news feeds. This one-to-many communication channel is a powerful driver of player acquisition and engagement on mobile, and you should take steps to optimize this channel for best results.

Native Share dialog on iOS

If you develop for iOS, the latest version of the Facebook SDK for iOS offers a new native Share dialog. When you choose to present it, the Facebook SDK opens the Share dialog on the Facebook app, providing people a fully native experience. Once people choose to post or cancel, they're taken back to your game and the result is passed to your code.

That approach has the following advantages:

  • 100% native for a great, fast share experience
  • Support for sharing Open Graph stories
  • Does not require Facebook Login

Since there are cases where the Share dialog might not be available (for example, when the Facebook app is not installed on the device), you should check its availability using the designated API and fallback to the web Feed dialog when needed. The native Share dialog and a fallback to the Feed dialog is also implemented in the iOS Sample Game.

Graph API for feed

You can give players the ability to share interesting moments within your game via the Facebook Feed dialog as well as through an API. This means you have the power to construct your own UI around sharing to feed. Building your own interface has a number of immediate benefits. You can do the following:

  • Build natively for all Android and iOS versions to make your dialog as performant as possible
  • Leverage your game's art assets to build a customized and engaging experience
  • Tailor your interface flow specifically around the content you're sharing

Choose interesting moments to share

Feed publishing, either through the Facebook Feed dialog or through the Feed API, is a powerful distribution channel. But people will only choose to interact with it if they feel the content your game provides is worth sharing. That means it's important to select key moments within the flow of your game to prompt people to post to Facebook. Try to best represent players by letting them show off achievements or noteworthy events while they played your game. If you over-prompt them to share, they'll be turned off and you'll see publish and impression rates decrease, so treat the channel with care and monitor the performance of your iterations in Facebook Analytics.

Deep linking

When a story is shared to a player's timeline and their friends' news feeds, it typically corresponds to an individual piece of content within your game. Maybe a player is bragging about a high-score on a level they completed or that they've won a weekly tournament.

When another player taps one of these stories in the Facebook App for iOS or Android, your native app is launched and you are provided with a source URL that you originally included when generating the story. Rather than sending the player to a generic home screen for your game, consider if it's possible to contextually parse the incoming link in order to direct the player to the specific item of content they interacted with. For example, if they are responding to a challenge story, let them play against that specific player who originally sent the challenge.

Deep linking from feed is implemented for both iOS and Android in the Sample Game.

Requests

Game requests are one of Facebook's primary social channels, used for direct one-to-one communication between people. Requests on mobile are especially powerful as they generate a push notification through the Facebook app, and open directly into your game on either iOS or Android. Requests are useful as an engagement mechanism, used to communicate between players within your game to alert them of specific game play events.

Requests are implemented for both iOS and Android in the Sample Game.

Depending on whether your game is Mobile only or available on Facebook.com, we suggest developers to use either the Game Request Dialog, or the Custom Friend Selector. If the player is not logged in, we recommend developers to detect this and use App Invites to invite new players to play the game.

Build a custom friend selector (Mobile + Games on Facebook.com)

You can spawn the Facebook Requests dialog using a to parameter, which will direct the request to one or more specific people playing your game. This means you have the power to construct your own UI for sending requests. Building your own interface has a number of benefits similar to those you gain when constructing a custom Feed implementation. You get to build natively for all Android and iOS versions and make your dialog as performant as possible, leverage your game's art assets to build a customized and engaging experience and tailor your interface flow specifically around the requests you are sending.

Open Graph

With Open Graph, you can publish structured content about a player's activity to their Timeline. This gives your game better visibility and distribution on Facebook. You design custom Open Graph actions and objects to best show off activity taken by a player in your game. These stories are surfaced by Facebook, and drive traffic back to your game.

Publish from the server

Through Facebook Analytics, you can track the performance of the Open Graph stories you create. As you observe traffic over time you may notice some stories performing better than others. Based on this information, or any A/B testing you may have run, you can change when and how your game publishes Open Graph stories. If you publish direct from your mobile app to Facebook it can be difficult to quickly iterate on your Open Graph functionality, as every change requires shipping a new binary to the native app store, which may take time to be approved or to be taken live. Alternatively, if you structure your game so that the mobile app reports people's activity to a server, then you retain full control, server-side, of what you pass on to Facebook. This way you can control with full granularity the frequency and types of stories you submit to Facebook, letting you iterate and optimize to improve the performance of your Open Graph presence and drive more distribution for your game.

Reusing the Facebook App ID across platforms

Rather than creating a new Facebook App for each mobile platform the game is available on, you should reuse the same App ID by enabling the Native iOS App and Native Android App sections on the app setting page in the Developer Site:

This has a number of key advantages. Facebook treats the app as a single experience and is agnostic about the platform. This means we drive traffic, through game requests and Sharing across platforms, allowing your players to interact via Facebook, regardless of the device they're using.

Additionally, if you are launching your game to a new platform and have a preexisting player base, by using the same Facebook App ID, you maximize your discovery potential by bootstrapping your existing audience.

Promotion

If you are using Mobile App Install Ads to drive paid distribution to your mobile app by advertising inside the Facebook App, make sure that you using the latest Facebook SDK (for iOS or Android) and include the correct tracking code inside your app so that you can track the efficacy and performance of your ads. The Mobile App Install Ads video demonstrates technically how to include the single line of code needed to enable tracking inside both iOS and Android environments.

Comprehensive Checklist

The following checklist is a comprehensive guide and overview of all recommended best practices for mobile games both on Android and iOS. In additional to the ones highlighted above, you can use this checklist to get started with building a new game or to improve an already existing game.

General

Area Recommendation

Latest SDKs

Use the latest SDKs for both Android and iOS. The latest versions of the Facebook SDK for iOS and the Facebook SDK for Android provide a number of key benefits over their previous counterparts.

Integrating with the latest Facebook Mobile SDKs gives you full access to Facebook's mobile platform, performs better than previous versions and provides a better experience for your players.

Discovery

Area Recommendation

App Center

App Center is the central place for over one billion people on Facebook to find and discover games.

Login

Implement Facebook Login. Getting a mobile player connected to Facebook is a proven method to increase engagement within a game. Both SDKs for Android and iOS support native login dialogs to minimize the interruption and maximise the conversion rates.

Permissions

Only ask for permissions that your game needs. In the latest SDKs for iOS and Android, we require that you ask the player for read and write permissions separately.

Distribution

Area Recommendation

Open Graph Stories & Feed Dialog

Open Graph stories help people tell stories about, for example, their progress and achievements within a game they use. It provides developers with the opportunity to deeply integrate their app into the core Facebook experience, which enables distribution and growth. Make sure to define meaningful actions and objects to model core actions in your game.

Stories posted via the Feed Dialog are eligible to appear in the player's friends' news feed, and will also appear on their timeline. Make sure to use the native dialog on iOS.

Game Requests, Gifts

Game requests are one of Facebook's primary social channels, used for direct 1-to-1 communication between players. Requests on mobile are especially powerful as they generate a push notification through the Facebook app, and open directly into your game on either iOS or Android.

Gifts are a common use-case of the Request channel. Gifts are generally lightweight virtual goods (energy packs, vanity items) that can be used to re-engage players that haven’t visited in a while.

Multi-Friend Selector

Building your own multi-friend selector enables you to customize it to your app and the specific scenario so that the experience feels more consistent with the rest of your app and optimizes for selecting friends most relevant for your game.

App Invites

App Invites are a major driver of growth and engagement for games. Players send Invites to friends to join them in a game, driving new installs.

Device Filtering

Device Filtering for those mobile apps that are only supported on specific platforms. You may want to restrict sending requests only to people that have your supported devices.

Deep Linking

Deep Linking stories shared to a player's timeline and their friends' news feed. Stories typically correspond to an individual piece of content within your game. Maybe a player is bragging about a high-score on a level they completed, or that they've won a weekly tournament. Deep linking from News Feed is implemented for both iOS and Android in the Sample Game.

Monetization

Area Recommendation

Login Bonus

Reward players who are playing your game regularly by, for example, giving away an increasing bonus on each consecutive day they play (10 coins on day 1, 20 on day 2, and so on).

Live Ops

Sales & events can be an effective means to increase revenue. Sales on premium currency can bring pull revenue forward without actually increasing overall payment volume, so be cautious of creating too many sales which encourage players to spend only during sale events. In addition, new content or new virtual items are quite effective at increasing revenue.

Audience Network

Audience Network can help you monetize your iOS and Android games with highly targeted Facebook ads. Select from three different ad units: banners, interstitials, and native ads.

Promotion

Area Recommendation

Facebook Page

Associate your game to a Facebook Page. This will allow you to add a 'Play Game' call-to-action on your Facebook Page, a 'Visit App Page' button will be added to your App Center listing, and if your game is available on mobile a 'Send to Mobile' button on your Facebook Page. Use the page to engage with players of your game, for example by posting updates, frequently asked questions and other engaging content. You can do this in the advanced tab of your app settings.

Mobile App Install Ads, Page Post Ads & Sponsored Stories

Mobile App Install Ads appear in mobile News Feed and are a highly effective way to reach more people with your mobile apps.

Both Page Post Ads and Sponsored Stories can appear both in News Feed and on the right hand column, and are great ways to drive awareness and engagement to your app.

App Events

App Events will allow you to understand the makeup of people engaging with your app, measure the performance of your Facebook mobile app ads, and reach specific sets of your players with Facebook mobile app ads.