Using content ratings

[ This article is for Windows 8.x and Windows Phone 8.x developers writing Windows Runtime apps. If you’re developing for Windows 10, see the latest documentation ]

For every piece of content to be used by an app in GetRestrictionLevelAsync and RequestContentAccessAsync methods, the app must provide a RatedContentDescription.Ratings value that reflects the age for which that content is appropriate.

Important  This topic refers specifically to the ContentRestrictions API. For info about the age rating process used when submitting apps to the Windows Store, see Age ratings.

 

When determining the Ratings for a your content, apply these guidelines:

  • If the content has any existing third-party board ratings, provide those ratings in the Ratings property. Family Safety uses the ContentRestrictionBrowsePolicy.GeographicRegion and RatedContentDescription.Category properties to determine the appropriate rating board, by region and by content category. If RatedContentDescription.Ratings contains the board's rating, that rating is used by the API as the rating for the content, to determine whether the user can use it.

  • If the content doesn’t have an existing third-party rating for its content category in the Family Safety settings region, and if the content’s age suitability is known, you can provide a Store age. The rating must most accurately reflect age appropriateness of the content.

  • If the content doesn’t have an existing third-party rating for its content category, and if the content’s age suitability isn't known, ensure that RatedContentDescription.Ratings does not contain any rating values.

  • If no third-party rating board is defined for the ContentRestrictionBrowsePolicy.GeographicRegion and RatedContentDescription.Category properties, you can provide the following ratings for your app's content:

Content ratings JSON file

The monikers for the ratings used in the RatedContentDescription.Ratings property are defined by the content ratings JavaScript Object Notation (JSON) file. The file has this structure.

version value

Provides the YYYY.MM date stamp that indicates when the JavaScript Object Notation (JSON) file was created. The JSON file is updated when the ratings data is changed.

regions object

Lists details about the rating boards by region. This object represents info provided by Supported content-rating boards.

"regions": {
…
"AR": {
    "tv": ["INCAA"],
    "movie": ["INCAA"]
    },
…
"US": {
    "movie": ["MPAA"],
    "tv": ["TVPG"],
    "game": ["ESRB"],
    "music": ["RIAA"],
    "application": ["Microsoft", "ESRB"]
    },
...
}

Every region that has one or more third-party rating boards for content categories supported by the ContentRestrictions API is represented by an object. This object lists content categories and corresponding rating boards to be used for the regions. Argentina (AR) lists rating boards for tv and movie content categories; the United States (US) has rating boards defined for more content types, such as movie, tv, game, application, and music. It’s possible for a content category to have more than one rating board. The rating of any listed board can be used to indicate that content of the listed content type is age appropriate in the region.

unlisted object

The unlisted object represents rating boards, by content category, to be used for any region that is not represented by an object in "regions". For example, Zimbabwe is not listed as a region, so its game and app rating boards are defined by this object.

If a region is represented by an object in "regions", but doesn’t explicitly list a particular content category, use the rating board or boards listed in the unlisted object for that content category. For example, Argentina (AR) doesn’t list the game content category, so PEGI ratings are to be used for Argentina.

"unlisted": {
    "game": ["PEGI"],
    "application": ["Microsoft", "PEGI"]
},

defaults object

The defaults object lists rating boards, by content category, that are to be used if:

  • The content doesn’t have a rating in the region’s rating board for the content category. For example, if a game in the US doesn’t have an ESRB rating, use the Store age rating (“Microsoft”).
  • The region doesn’t have a rating board for the content category, even after the unlisted object values are taken into account. For example, there is no rating system for the music content category in Argentina, so you use the Store age ratings (“Microsoft”).
"defaults": {
    "game": "Microsoft",
    "tv": "Microsoft",
    "movie": "Microsoft",
    "music": "Microsoft",
    "general": "Microsoft"
},

systems object

The systems object lists supported rating boards. For each rating board, an array of supported rating monikers is provided.

"systems": {
…
"OFLC-NZ": [
    "OFLC-NZ:G",
    "OFLC-NZ:PG",
    "OFLC-NZ:R13",
    "OFLC-NZ:R15",
    "OFLC-NZ:R16",
    "OFLC-NZ:M",
    "OFLC-NZ:R18",
    "OFLC-NZ:R"
],…..

The Store age ratings are represented by these values.

"Microsoft": [
    "Microsoft:3",
    "Microsoft:7",
    "Microsoft:12",
    "Microsoft:16",
    "Microsoft:18"
  ],

ageRatings object

The ageRatings object lists both ratings for all supported rating boards and the age suitability for each rating. Each rating property has this format.

<rating moniker>:<age suitability of content with that rating>

In this representation, <rating moniker> is <rating board>:<rating>. Here are examples of age rating info in that format.

"ageRatings": {
…..
"OFLC-NZ:G": 1,
"OFLC-NZ:PG": 8,
"OFLC-NZ:R13": 13,
"OFLC-NZ:R15": 15,
"OFLC-NZ:R16": 16,
"OFLC-NZ:M": 16,
"OFLC-NZ:R18": 18,
"OFLC-NZ:R": 18,
…
"Microsoft:3": 0,
"Microsoft:7": 7,
"Microsoft:12": 12,
"Microsoft:16": 16,
"Microsoft:18": 18,
….
},

For example, an OFLC-NZ:G rating is suitable for users aged 1 and older. G stands for “General – Unrestricted”. A Microsoft:7 rating is suitable for users 7 and older, and represents Store age rating “7+”.

excludedRatings object

The excludedRatings object lists ratings that are not applicable to the one or more content categories. This info is in the following format.

<rating moniker> : <array of content categories for which this rating is not applicable>

In this representation, an empty array indicates that the rating is not applicable to any categories.

You use a rating exclusion in these circumstances:

  • Some rating boards are covering several content categories with different ratings per content category. The ability to exclude a rating from a content category allows us to accomplish this. For example, New Zealand (NZ) Office of Film and Literature Classification board defines rating that cover game, movie, and tv content categories. R13-Restricted and R15-Restricted ratings are applicable to game and movie content, but not tv content.
  • A rating gets deprecated. For example, the Spain (ES) movie-rating system (ICAA) ratings no longer contain rating “15”. This movie rating for ES is supported by the ContentRestrictions API, but rgw "15" rating no longer appears in the content settings UI as a supported rating.
"excludedRatings": {
….
    "OFLC-NZ:R13": ["tv"],
    "OFLC-NZ:R15": ["tv”],
       "ICAA:15": [],
….
},

Supported content-rating boards

Store age ratings

ContentRestrictions