how-to guide
Passing the Most Commonly Failed VRCs
Share this doc:
Meta's Virtual Reality Checks (VRCs) are a series of guidelines that help ensure you produce a great app. To that end, VRCs are a big part of Meta's initial and ongoing review of your app. You must meet or exceed these guidelines in order to publish your app on the Meta Horizon Store.
During reviews, apps fail certain VRCs much more frequently than others. Use this guide to learn why apps often fail these VRCs, and how to ensure you are ready for review.
Performance.1
Performance VRCs are intended to ensure your app is performant and responsive. During review, apps fail Performance.1 more than any other VRC.
Review the information below to learn how you can avoid common mistakes.
Requirement
Performance.1 requires that your app runs at an allowed refresh rate and maintains a minimum rendering rate. Learn about this VRC and how to meet it:
Performance.1
1 min
Transcript
When we test apps during the review process, we see the most problems with frame rate. A low frame rate not only takes away from the user experience, it can even create physical discomfort.
Under Performance.1, your app must consistently meet our requirement of at least 60 frames per second. For the best user experience, we recommend your app performs at 72 frames per second or better.
To test, play through your app using a tool like the OVR Metrics Tool. We always have this tool running when we're testing, so we recommend you do the same. Ensure your app consistently performs at 60 frames per second or better for the entire experience.
We allow a lower frame rate for loading screens, but they should be designed in a way that users won't notice the drop. Opt for simple design options like a solid color on the screen for loading.
If your app isn't meeting frame rate requirements, you have more work to do. Don't submit your app until it's consistently performant. Check out the additional resources we've created for help.
TL;DR: Make sure your app consistently meets the minimum required frame rate of 60 fps.
How do I meet this requirement?
To ensure your app satisfies this VRC, confirm it meets the following criteria:
What if my app doesn't meet this requirement?
Performance issues can be among the most complex to resolve. But, Meta will test using the OVR Metrics Tool and fail any app that does not consistently meet the requirement of ≥60 frames per second. Don't submit your app until it satisfies this requirement.
If your app isn't consistently performant during a full playthrough, make a feasible plan to address performance issues. Don't try to fix everything at once. Spend time identifying the most significant issues and focus on that code. Check out these guidelines for help optimizing performance.
Privacy.1
The Privacy VRCs ensure your privacy policy meets Meta's requirements. Generally speaking, these requirements ensure that users can easily access your privacy policy, and that it clearly explains what user data you collect and how you protect it. During review, apps regularly fail Privacy.1, which outlines requirements about the accessibility, ownership, and relevance of your privacy policy.
To help ensure you pass Privacy.1, review the following:
Requirement
Under this VRC, Meta will confirm that the privacy policy link you submit leads to a live, publicly available privacy policy managed by your organization and relevant to your app. Learn about this VRC and how to meet it:
Privacy.1
1.5 mins
Transcript
Privacy.1 addresses the most basic requirements for your policy: that it applies to your business and to your app, and that users can freely access it. To avoid delays and interruptions, make sure your privacy policy meets these criteria:
First, as obvious as it sounds, the link you provide must be live and remain live as long as your app is on the Store. Consider a monitoring tool that regularly checks the status of your page and alerts you if it goes down.
Second, your website must have a proper HTTPS connection. Make sure your website and privacy policy page are secured with a valid SSL certificate.
Third, the link you submit must include a privacy policy. We see this issue often. Do not link to a page hosted by a third-party site such as Discord.
Fourth, your privacy policy must be publicly available. Make sure users are not required to enter any data or log in to view it.
Finally, your privacy policy must be specific to your organization and your app. Don't copy the policy of a similar app or link to anyone else's privacy policy. The privacy policy must mention this specific app, or your submission will fail.
Remember, this isn't the only VRC your privacy policy must satisfy. Review all required privacy VRCs and evaluate your privacy policy before you submit your app. These proactive steps will help get your app live faster and set you up for long-term success.
TL;DR: Make sure the link you provide leads to a live, publicly available privacy policy managed by your organization and specifically related to the app being submitted.
How do I meet this requirement?
To ensure your app satisfies Privacy.1, confirm it meets the following criteria:
What if my app doesn't meet this requirement?
Meta will review your privacy policy during initial review and on an ongoing basis as long as your app is live. If your privacy policy does not meet the above requirements, you will fail Privacy.1.
Make sure your policy satisfies all required VRCs before you submit. Then, consider using a monitoring tool to regularly check the status of your page and help you ensure that your link remains live.
Privacy.4
The Privacy VRCs ensure your privacy policy meets Meta's requirements. Generally speaking, these requirements ensure that users can easily access your privacy policy, and that it clearly explains what user data you collect and how you protect it. During review, apps regularly fail Privacy.4, which outlines Meta's requirements for your privacy policy specific to data deletion.
Learn how you can ensure your data deletion practices meet Meta's requirements:
Requirement
Under Privacy.4, Meta ensures your privacy policy includes a data deletion clause that clearly communicates users' rights. Learn more:
Privacy.4
2 mins
Transcript
Privacy.4 is all about making sure your privacy policy provides a clear process for users to request their data be deleted. Most often, apps fail this VRC because the clause is either missing altogether or does not adequately protect users' rights.
To pass Privacy.4, start by confirming your policy includes a dedicated deletion clause. Then, make sure that section satisfies these four criteria:
First, you must provide your users with clear instructions for making a deletion request. Include the specific steps they need to take. Whether it's submitting a request via email, filling out a form, or using an in-app feature, the process should be easy to follow.
Second, inform your users of any exceptions to the data deletion process. For example, you may need to keep certain records or data for compliance purposes. If this applies to your app, clearly communicate those exceptions in your privacy policy.
Third, do not include any language that suggests your deletion clause only applies to users with certain characteristics. Apps often fail this VRC because their privacy policy suggests that only users in certain geographic regions, like California or the EU, can request deletion. Make sure your policy clearly states that all users can submit a deletion request.
Fourth, and finally, you cannot charge your users to delete their data. Make sure your deletion clause does not state or imply that users must pay a fee for deletion.
The bottom line is you must allow users to request their data be deleted, and your privacy policy must give them a clear blueprint to do so.
TL;DR: Make sure your privacy policy includes a deletion clause that applies to all users. It must provide a clear explanation of the free, easy process for users to request their data be deleted.
How do I meet this requirement?
To ensure your app satisfies this VRC, confirm it meets the following criteria:
What if my app doesn't meet this requirement?
The only way your app can pass Privacy.4 without a deletion clause is if it doesn't collect any data. Even then, Meta requires that you state that explicitly in your privacy policy.
Publishing.1
The Publishing VRCs ensure the information you provide to round out your app's presence on the Store meets Meta's requirements. Publishing.1 is one of the most commonly failed VRCs.
Keep reading to learn how to avoid common mistakes.
Requirement
Publishing.1 outlines requirements for the external app website you provide. Let's take a closer look at why apps fail this VRC, and how you can avoid common mistakes:
Publishing.1
2 mins
Transcript
The VRCs in the Publishing category relate to what you provide for your app's Product Detail Page. We evaluate these details as a part of app review. Many apps fail Publishing.1, which requires you to provide a valid URL to your app's website. Here's what you need to do to pass this VRC.
First things first, the URL you provide must link to a live website. Apps often fail Publishing.1 because the site throws an error. Consider setting up a monitoring tool that regularly checks the status of your page and alerts you if it goes down.
Second, your website must be secure. Apps often fail this VRC because users are alerted that the URL may not be safe or private. Before you submit, make sure your website is protected with a valid SSL certificate.
Third, keep in mind that “valid” doesn't just mean live or secure. The majority of apps fail this VRC because the URL is hosted by a third party like Discord. Provide a link to a functional website URL that is publicly accessible and clearly applies to your organization and this specific app.
Fourth, and finally, make sure the content on the page adheres to Meta's Content Guidelines. If you haven't already, review the Content Guidelines to verify your website is compliant.
Providing the URL for your app is a quick and simple step, so it may be easy to overlook this VRC. Taking time to ensure the link meets these requirements before you submit will help you clear the review process faster.
TL;DR: Provide a link to a functional website URL that is publicly accessible, secured with a valid SSL certificate, and clearly applies to your organization and this specific app. Do NOT link to a site hosted by a third party such as Discord.
How do I meet this requirement?
To ensure your app satisfies this VRC, confirm it meets the following criteria:
What if my app doesn't meet this requirement?
If any of the above criteria aren't met, your app will fail Publishing.1. Update your existing page or create a new website that meets Meta's requirements before you submit your app to avoid delays in the review process.
Functional.3
Functional VRCs are requirements that help ensure that your app not only works, but functions the way players expect it to. Functional.3 is one of the most commonly failed VRCs.
Review the following to help ensure you pass Functional.3.
Requirement
Functional.3 requires that users can progress through your app, and don't get stuck at any point. Apps fail this VRC often, but the reason why might surprise you. Watch this short video to learn more:
Functional.3
1 min
Transcript
To pass Functional.3, your app shouldn't crash, hang, or leave users stuck at any point. That includes the very beginning of the experience.
If your app requires a login, you must provide instructions for a user to create an account. Those instructions must be easy to find wherever accounts are created, and always discoverable in VR.
Next, your app cannot have any progression blockers. At a high level, users should be able to progress through the game's timeline or from one level to another. So, a user's inputs should elicit appropriate responses. For example, if a user turns a door knob, the door should open.
The bottom line is, it shouldn't be difficult for a user to move through your app. Before you submit, play through your app and make sure you can progress through the content for at least 45 minutes.
While we do see progression issues, developers actually fail this VRC most often because they don't provide test credentials. That effectively leaves our reviewers “stuck.” If your app requires a login, include test credentials so we can begin the testing process.
TL;DR: If your app requires a login, provide test credentials for Meta's reviewers at submission in the “Notes for the Reviewer” section. Play through your app to ensure you can progress for at least 45 minutes.
How do I meet this requirement?
To ensure your app satisfies this VRC, confirm it meets the following criteria:
What if my app doesn't meet this requirement?
For apps that require a login, add or update account creation instructions before you submit. If these instructions are not discoverable in VR, your app will fail Functional.3. Create and provide test credentials for Meta reviewers at submission.
Progression blockers are a more complex challenge. If you cannot successfully progress for 45 minutes within your app, you have more work to do. Revisit your code and address any blockers before you submit to avoid a frustrating review process.
Tracking.1
The Tracking VRCs ensure that your app meets Meta's requirements for this essential component of VR technology.
Learn how to avoid common mistakes that can lead to failing Tracking.1:
Requirement
To set user expectations, Tracking.1 requires you to select one of three play modes when you define your app's metadata: sitting, standing, or roomscale.
Selecting the primary play mode for your app can be nuanced, which may be why Tracking.1 is a commonly failed VRC. Let's talk about how to avoid common mistakes when choosing your app's play mode:
Tracking.1
2 mins
Transcript
When you define your app's metadata, you'll indicate whether the play mode for your app is sitting, standing, or roomscale. This helps users understand the physical space and requirements necessary to use your app, so the play mode you select must be accurate.
Beyond accuracy, you should consider your selection from an accessibility point of view. Many users choose apps based on physical differences. Apps often fail Tracking.1 because progression requires a greater range of motion than the play mode implies.
To meet the requirements for sitting, your app should be completely playable while a player is seated in stationary furniture, like a couch or fixed-position chair. Make sure your app never requires a player to stand, lift off the seat to reach down to the ground, or pivot more than 90 degrees to the left or right.
Even though it may be the chair you use for testing, a gaming chair with wheels and a swivel isn’t a good benchmark for meeting the sitting requirement. Test your app using a stationary chair and confirm that the app never requires you to leave the seated position.
To comply with the standing mode, your app must be completely playable from a fixed standing position. The app can require limited motion, like turning around or reaching. But users shouldn't have to take more than two steps in any direction within the play area.
And finally, to comply with roomscale requirements, your app must be completely usable within a play area measuring 6 and a half feet by 6 and a half feet or greater. Roomscale ensures users have enough physical space to progress in your app, and implies an unlimited range of motion within that space.
If you're unsure which mode most accurately reflects your experience, go with the mode that has fewer limitations. Standing even once in an experience designated for “sitting” may not seem like a big deal, until a user is physically incapable of doing so. Setting the right expectations helps avoid user frustration, and contributes to the success of your app.
TL;DR: Make sure your app meets the strict definition of the play mode you select.
How do I meet this requirement?
To ensure your app satisfies this VRC, confirm it meets one of the following criteria:
Tips for choosing the right play mode
If the play mode you select doesn't accurately represent the physical demands of your app, you won't pass Tracking.1.
If you're still building, consider ways to make your game more accessible such as incorporating remote grip, point-and-click functionality, or automatic object response.
If you're ready to submit, reevaluate your game from an accessibility perspective first. Consider the limitations and expectations implied by the play mode. If you're still unsure which mode to select, choose roomscale.
Disclaimer: This resource does not guarantee compliance with Meta policies, nor applicable data privacy laws. Review Meta Horizon's Developer Data Use Policy for a comprehensive overview of Meta's requirements.