Answers to questions about developing, managing, and monetizing Instant Games.
Log in to Facebook.com and click the Games bookmark on the left, or visit https://www.facebook.com/games/instantgames.
Make sure your app is in the Games category. The Instant Games product will not show up for apps outside this category.
Refer to our list of compatible engines.
While we don't impose hard limits on game size, we do recommend that the initial download time not exceed 5 seconds. You can host game bundles of up to 200MB, but only require necessary files in the initial load. For more details, refer to our Best Practices section
When it comes to deciding where to store your information, you have several options:
Have a third-party backend your game communicates with via XMLHttpRequest, fetch, WebSocket or EventSource. This will mean more flexibility, but will also incur hosting costs proportional to your game's audience.
Use our SDK-based solutions, which enable server-side functionality out of the box. For storing player-specific information, use our player.getDataAsync and player.setDataAsync methods. For leaderboards, see our Leaderboard API guide.
Third party services like PlayFab provide fully cross-platform backend-as-a-surface platforms built to support LiveOps, matchmaking and analytics. Browse more tools.
The minimum system requirements for playing instant games are iOS 9.0 or Android 5.0.
You can report issues directly on the Howler.js Github page. Put "[IG]" in the title of the issue to help the developers prioritize.
You should make sure to call window.innerWidth and window.innerHeight after FBInstant.startGameAsync() resolves.
You can use (and edit) tracks from Facebook's Sound Collection in your games. Sound Collection content can only be used on the Facebook platform, so any version of your game that incorporates Sound Collection content can only be distributed on our platform.
Our FBInstant.context.shareAsync() method contains an intent parameter that accepts values like 'INVITE', 'SHARE', etc. As of version 4.0, this parameter does not serve a specific purpose. It was added to future-proof the SDK and it will provide user-facing changes in the future.
When you're challenging another player in the thread for the first time, there's no SDK method to retrieve information about the person being challenged. We recommend using a placeholder name like "opponent" until the second player responds to the invite. Once the other player has accepted the invitation to play, you can use FBinstant.player to fill in their picture and name.
The most common cause for a bot not receiving webhooks is misconfiguration in the app. Visit our Bot Setup page for a full guide on how to set up your game bot.
Check your Developer Dashboard to ensure that:
messages and messaging_game_plays events in the Messenger sectionIf you're getting errors in response to the Graph API send calls, it means one of the following situations is happening:
-You're trying to send messages outside of the per-user limit of 5 messages over 10 days
-You're trying to send messages to a user who has deleted, blocked or muted your bot
-Your app is in Development Mode and you're trying to send messages to people who don't have an Admin or Developer role in the app
For more information, review the Send API documentation.
Facebook app settings provides a way for people to request your app to delete the data it has from Facebook about them.
In response to the user request, you should acknowledge receiving a user data deletion request through the technical means we provide, and provide a link and a confirmation number. The link and confirmation number must give the user access to a human-readable explanation of the status of their request, including a legitimate justification for any refusal to delete (where legitimate will vary based on jurisdiction and our case-by-case interpretation of our policy as it relates to their stated reasons).
To parse and respond to the request, you should implement a "data deletion request" callback. Your callback must use the secure HTTPS protocol and must be listed in the Data Deletion Request URL field of your app's Instant Games > Details page in the app dashboard.
If you're following our Quickstart or our Test, Publish, Share guides, you must be familiar with our concept of the Embedded player. It's a way for you to test your Instant Game running from a local HTTP service in your computer, linked to all live functions of the Instant Games SDK.
Sometimes when you try this approach, your game can be stuck in loading. Sometimes no message will be displayed in the browser's developer console, or a message will be displayed saying Failed to execute 'postMessage' on 'DOMWindow'. These stem from the same type of error, most commonly caused by your local server refusing to serve assets because of a certificate issue.
If that's the case, navigate to the root of your local server (usually https://localhost:8000 or https://127.0.0.1:8000) and follow your browser's instructions in accepting certificates, or adding a security exception for this website. Once you've done that, go back to the Embedded player URL and everything should work as normal.
Make sure your understand the lifecycle of ad instances.
Since we removed "blob:" from our CSP configuration, some games made with Unity might encounter an issue at loading time. The error you might get in your web browser's console will look something like this: Refused to load the script 'blob:https://apps-xxx.apps.fb UnityLoader.js'
To solve this issue, you could try to:
loadCode:function(e,t,r){var s=document.createElement("script");s.src="Build/"+r.url,s.onload=function(){t(r.url.split('.').slice(0,-1).join('.')),delete s.onload},document.body.appendChild(s)},You can review them on our Payments Terms page.
Tax details can be found in section 3.9 of our Payments Terms page.
When you complete a sale on our platform, Facebook will credit the proceeds from that sale, less our service fee, to your Developer Balance. Facebook will earn a 30% service fee, plus any applicable sales tax or VAT, in connection with each Facebook Payments transaction on our platform. Review our Payments Terms for more details.
For issues regarding your recent payouts, please submit an inquiry via the Facebook Payment Support for Monetizers Form. and select Game / App (Developer) > Payouts > I have a question about my recent payout.
For payment and reporting questions, contact Facebook Payment Support.
Escalating the issue elsewhere or reopening an additional ticket will complicate your existing inquiry with our Payments Operations team. We strongly advise all partners to channel followups through the existing communication channel you have with the Payments Operations team.
If you need help updating the information in your account, please visit our Payments help page. When financial information is updated, we place a 10 day hold on your account before processing a payment. We may be able to remove this hold more quickly if you send us proof of ownership of the bank or PayPal account. For proof, you can send us a bank statement, a bank letter on the appropriate letterhead, or a screenshot from PayPal.
If you are the admin of the account, you can view the Financial Entity associated with your account in your Business Manager Dashboard. If you'd like to be added as a financial account administrator, ask a current administrator for your organization. Once you're Facebook friends, they can add you directly on the Facebook Developers Site.
Please use our Payment Support for Monetizers form and select Game / App (Developer) > Update account records > Change the organization associated with my app or Facebook page.
Visit our Facebook Payment Support for Monetizers form, then select Game / App (Developer) > Update account records > Change the organization associated with my app or Facebook page.
If you've developed apps that use Facebook payments and subscription features, you can get a full breakdown of your refund and chargeback activity by using the Reports feature of Facebook Payments. A full guide can be found on our Payments Reports page.
We don't have a notification system, but we do include refund information in the remittance pdf we send every month.
Reimbursements are paid monthly, but the payout release period is 60 days, i.e., January's payout activities will be paid out in March.
Every player can access it from Settings, and specifically in the Payments section. Suggest players to learn more in Facebook Payments.
To restrict game access to a custom list of countries:
During submission for instant game app review, you must provide an Apple Developer team ID in accordance with Apple's App Store Review Guidelines. This enables distribution of your game on iOS. Using an invalid or expired Developer team ID may lead to your game being removed.
You can find your team ID by logging into your Apple Developer Account.
Developer game submissions and launches are limited to three per week (7 consecutive days starting from the first submission/launch time). Three games can be reviewed by Facebook per week, and three games can be published per week, once they have been reviewed and approved. We created this limit to help you be successful as you launch your game.
To learn more about the review process, see the Submitting for Review section in the Launch Checklist.
The Review tab of the developer dashboard allows you to submit your game to our review team.
You have to submit your game for the following reviews:
You need a Monetization Manager to submit your game for:
Before submitting your game for IAP review, the app must be approved for Audience Network.
Learn more about sending your app for review.
It typically takes our Developer Operation team less than one week to process your submission.
The purpose of each review is to ensure quality and integrity standards are met for on-boarding to the Instant Games platform.
Specifically, we screen games for compliance with functionality and adherence to the Facebook Platform Terms and Developer Policies.
Before submitting for review, make sure to check the Release guidelines.
If your current submission requires additional information, you can go to your app dashboard and visit the required actions tab to check the warning period and required steps.
Our review team will use the instructions you provide to test your app's Facebook integrations.
If you feel our reviewer has incorrectly rejected your app, you should resubmit for review with updated review instructions that provide more info for the reviewer.
The review process is the best way to communicate with your reviewer by updating your notes to address the feedback you've received.
Your Facebook App ID created for your Instant Game cannot be used for any other platform. You can find more info in our documentation.
For App Review, game submissions must linked to a business (verified or unverified).
For Global & Country Launches, the app's linked business must be verified to launch the game into our discovery surfaces (game list, etc). The game will still be playable after review approval.
To verify your business, you need to create a Business Manager. Find more info about Business Verification here.
Learn how to verify a Business.
You can always find the status of business verification and contracts and steps to take in the business verification panel found in the app review tab of the app dashboard. We will send you notifications throughout the process to let you know what action is needed.
If you already have a Business Manager account, we recommend that you connect the app to the existing Business Manager.
If there are multiple Business Manager accounts that belong to the business, we recommend determining the rationale for multiple Business Manager accounts and aligning the app with the most appropriate Business Manager. If the business has a credit line set up through the Business Manager, we recommend that you connect the app with the one that has the credit line.