This week, I am writing a blog post series explaining the most common certification errors when submitting an app to the Windows Store. I began the series with some general guidance and overall tips & tricks. Now I’m going through the specific requirements that fail most often, and we already covered 1.2 Fully Functional and 3.8 Performance.
Today, we will examine certification requirement 4.1: “Your app must comply with the following privacy-related requirements: Your app must have a privacy statement if it is network-capable, and your app must obtain opt-in or equivalent consent to share personal information”. Here is the description of this requirement from the certification requirements page:
4.1.1 Your app must have a privacy statement if it is network-capable
App capability declarations that make your app network-capable include: internetClient, internetClientServer and privateNetworkClientServer.
4.1.2 Your app must obtain opt-in or equivalent consent to share personal information
Your app can publish a customer’s personal information to a service or other person only after obtaining opt-in consent.
Opt-in consent means the customer gives their express permission for the requested activity, after you have:
a) Described to the customer how the information will be used or shared; and
b) Provided the customer a mechanism through which they can later rescind this permission and opt-out, while continuing to use the app.
If your app publishes a person’s personal information, but that person is not a customer, you must obtain express written consent to publish that personal information, and you must permit the person whose information is shared to withdraw that consent at any time. If your app allows a customer to access another person’s personal information, this requirement would also apply.
Personal information includes all information or data that could reasonably be used to identify a person. Examples of personal information include: contacts, photos, phone number, audio & video recordings, location, SMS or other text communication, images of the computer’s desktop or screen shots, unique identifiers based on the computer's hardware, and in some cases, combined browsing history.”
This is summarized nicely here: “If your app connects to the Internet, uses the device's camera, accesses any of the user's libraries, or collects any type of personally identifiable information (PII), you must make sure your app includes a privacy statement in your app's metadata. Customers must also be able to access the privacy statement from the Settings charm when they open your app.”
So you have two options:
- Informs users of the personal information collected by your app
- Informs users how that information is used, stored, secured, and disclosed
- Describes the controls that users have over the use and sharing of their information
- Describes how users can access their information
- Complies with applicable laws and regulations
If you are unfamiliar with how to code integration with the Settings charm in Windows 8, here are some resources to help you:
- Callisto: This is a XAML toolkit for Windows Store apps created by Tim Heuer. It contains support for a SettingsFlyout class in XAML.
Finally, requirement 4.1.2 says that if you do collect personal information, the user has to give consent to share this information. Your application can fail certification if it appears to share personal information without explicit consent. Remember that “personal information” covers a wide variety of data that could be used to later identify the user, like email address, photos, location, etc. Lastly, don’t forget to provide a way for the users to opt-out later too, if they change their minds.
Tomorrow, we will discuss the last major certification failure: localization.
Other blog posts in this “Common Windows Store Certification Failures” series: