Once your game is live, it's important to keep monitoring key metrics with Facebook Analytics. Keeping a close eye on your metrics will help inform your feature design, give you insights about your audience, and validate that your updates are keeping your game on the right track.
In Facebook Analytics many events and pieces of demographic information are logged automatically, and in addition you can log Custom App Events with
So even if you don't log any custom events, you can check Analytics to get aggregated and anonymous information about your audience (e.g. age groups, country, languages spoken).
You can also see engagement information such as retention, active users, etc.
Thanks to a functionality in the Web Hosting section, you can distribute your game package to a subset of your audience and follow closely data changes to validate that your game updates are improving your metrics.
Building games for Instant Games requires that you build your game in HTML5. Here's a list of Best Practices while developing your Instant Game.
Initial loading shouldn't take more than 5 seconds: Instant Games need to be "instant", and players will tend to churn away if the initial loading takes too long. The total size of your bundle can be up to 200MB, but we'll only load the files explicitly required by your
index.html during initial loading. So make sure to use that time to only load essential assets for the first session and postpone loading of other assets for when they are needed.
Report initial loading progress: During initial loading, you should inform us on your loading progress by using
Avoid secondary loading screens: Once the native loading ring shows completion at 100%, the player shouldn't be thrown into another waiting experience - they should be able to play right away.
Optimize for desktop: You can have a different orientation for desktop browser by using the
override_web_orientation in the bundle config. This will allow you to make good use of all web estate.
Optimize for mobile: Although Instant Games works on desktop browsers, it's a good idea to optimize rendering and aspect ratio for popular iOS and Android devices.
Load resources in parallel with
initializeAsync: You shouldn't wait for the
initializeAsync promise to resolve before downloading your resources. You can download in parallel.
Consider code minification and/or uglification: You can reduce download size and memory requirements for code assets significantly and the obfuscation applied to the code in the process makes more difficult to cheat or steal your game code.
Allow seasoned players to come back to the tutorial if they choose to. It can be that they haven't played the game in a while, or that they want to show the tutorial to a friend. Take note not to force the tutorial in every session, but give experienced players the opportunity to jump right into play.
Consider group settings for new players who join the group later. You should ensure that these players see the tutorial on their first play.
Use playable tutorials over text if possible. The best tutorials are those that users do not know are tutorials.
The tutorial should be accessible for new players and seasoned players, but it should be easy to skip.
Consider to integrate Home Screen shortcut: prompt users to add a shortcut to your games to increase long term retention by creating an additional persistent entry point.
Localize your game: players tend to engage more with the game if they can play in a language that's natural to them. The table below will help you decide which languages to translate your game content to:
Top 10 Languages
EN (English), ES (Spanish), PT (Portuguese), FR (French), AR (Arabic), ID (Indonesian), VI (Vietnamese), TH (Thai), PL (Polish), DE (German)
Next Top 10 Languages
IT (Italian), ZH (Chinese), RU (Russian), TR (Turkish), MY (Burmese), MS (Malay), RO (Romanian), NL (Dutch), SV (Swedish)
Nice to have