When you mark up software application information in the body of a web page, Google can identify it and, when users search for apps, use this information to better display your app details in search results.
Here's an example of a rich snippet for a mobile application:
Properties
An application can have a number of different properties which you can label using the following extension to the schema.org
vocabulary. For each app, you can include nested Things (types of information supported by the schema.org vocabulary—for example, Review
or Offer
. More information about schema.org).
Properties in bold are required. Properties in plural indicate that the markup can contain multiple instances for each properties (e.g. reviews or offers implies that more than one review or offer can be included in the markup). In addition, rich snippets are currently only shown for software applications that provide at least two of the following:
aggregateRating(includingratingValueand eitherratingCountorreviewCount)offers(includingpriceandcurrency)operatingSystemssoftwareApplicationCategory
Thing > CreativeWork > SoftwareApplication
| Property | Expected type | Description |
|---|---|---|
name |
Text | The name of the app. |
description |
Text | A short description of the item. |
url |
URL | The URL of the product or landing page for the item. |
image |
URL | The URL of an image of the item (application logo or icon). |
author |
Person or Organization . |
The author of the app. |
aggregateRating |
AggregateRating ![]() |
The aggregate rating of the app. |
reviews |
Review ![]() |
A review of the application. |
offers |
Offer ![]() |
An offer to sell the app. For developers, Offer can indicate the marketplaces that carry the application.
For marketplaces, use to indicate the price of the application for a specific app instance. |
contentRating |
Text |
The official rating of the content in the format [agency] [rating] (e.g. ESRB M). |
datePublished |
Date |
The date of first publication, in ISO date and time format . |
inLanguage |
Text |
The language of the application, in IETF BCP 47 format . |
operatingSystems |
Text | Operating systems required (for example, "Windows 7", "OSX 10.6", "Android 1.6") |
fileSize |
Integer | The size of the application or software package, in bytes. |
fileFormat |
Text | The MIME format of the application or zip file. |
softwareApplicationCategory |
SoftwareApplicationType |
The type of software application (for example, BusinessApplication or GameApplication). Must be one of the supported software application types. |
softwareApplicationSubCategory |
Text | The subcategory of the app. |
downloadURL |
URL | A URL to download the software package. |
softwareVersion |
Text | The version of the software (for example, V2.1) |
versionChanges |
Text or URL | Describes the changes for the most recent version. Can consist of a text string or a URL to a webpage containing this information. |
dateUpdated |
Date |
The date the app was last updated, in ISO date and time format . |
installURL |
URL | The URL from which the app can be installed (if different from the app’s main URL) |
requiredFeatures |
Text | A text list of features, modules, or scopes required by the app. |
providedFeatures |
Text | A text list of features, modules, or scopes provided by the app. |
interactionCount |
UserInteraction ![]() |
A count of specific user interactions with this item. For example: 20 likes, 30 comments, 2 downloads. |
videos |
VideoObject ![]() |
An embedded VideoObject . |
screenshots |
ImageObject ![]() |
An embedded ImageObject . |
permissions |
Text or URL | Permission(s) required to run the app (for example, a mobile app may require full internet access or may run only on wifi). |
For mobile applications and web applications, Google also supports the following property extensions:
Thing > CreativeWork > SoftwareApplication > MobileSoftwareApplication
| Property | Expected type | Description |
|---|---|---|
countriesSupported |
Text | A list of countries where the app is available for sale or download. |
countriesNotSupported |
Text | A text list of countries where the app is not available for sale or download. |
Thing > CreativeWork > SoftwareApplication >WebApplication
| Property | Expected type | Description |
|---|---|---|
browsers |
Text | One or more browsers required to run the app. |
Marking up code
The following HTML code identifies a mobile software app and lists several of its features.
<div itemscope itemtype="http://schema.org/SoftwareApplication"> <img itemprop="image" src="https://ssl.gstatic.com/android/market/com.zeptolab.ctr.paid/hi-124-11" /> <span itemprop="name">Angry Birds</span> - <div itemprop="author" itemscope itemtype="http://schema.org/Organization"> <a itemprop="url" href="http://zeptolab.com"><span itemprop="name">Zeptolab</span></a> </div> <span itemprop="description">Cut the Rope, catch a star, and feed Om Nom candy in this award-winning game! The long-awaited hit game has finally arrived at Android! </span> CONTENT RATING: <span itemprop="contentRating">Low Maturity</span> UPDATED: <time itemprop="datePublished" datetime="2011-06-30">June 30, 2011</time> REQUIRES <span itemprop="operatingSystems">ANDROID</span>: <span itemprop="operatingSystemVersion">1.6</span> and up <link itemprop="SoftwareApplicationCategory" href="http://schema.org/GameApplication"/> CATEGORY: <span itemprop="SoftwareApplicationSubCategory">Brain & Puzzle</span> SIZE: 14M <meta itemprop="fileSize" content="14680064"/> INSTALLS: <meta itemprop="interactionCount" content=”UserDownloads:100000"/>100,000 - 500,000 RATING: <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> <span itemprop="ratingValue">4.6</span>( <span itemprop="ratingCount">8864</span>) <meta itemprop="reviewCount" content="3317" /> </div> <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> Price: <span itemprop="price">$1.00</span> <meta itemprop="priceCurrency" content="USD" /> <link itemprop="availability" href="http://schema.org/InStock" />INSTALL </div> Reviews: <div itemprop="reviews" itemscope itemtype="http://schema.org/Review"> <span itemprop="reviewRating">3</span> stars - <b>"<span itemprop="name">A masterpiece</span>" </b> by <span itemprop="author">Winston</span>, Written on <time itemprop="publishDate" datetime="2011-07-13">July 13, 2011</time> <span itemprop="reviewBody">Finally this amazing game has come to Android! Outstanding game and very cheap for how awesome it is. </span> </div> <div itemprop="reviews" itemscope itemtype="http://schema.org/Review"> <span itemprop="reviewRating">5</span> stars - <b>"<span itemprop="name">Love this game!</span>" </b> by <span itemprop="author">Winston</span>, Written on <time itemprop="publishDate" datetime="2011-08-22">August 22, 2011</time> <span itemprop="reviewBody">I have three starred every box in this game cuz I can't get enough of it. !</span></div> … THIS APPLICATION HAS ACCESS TO THE FOLLOWING: <span itemprop="permissions">YOUR LOCATION. COARSE (NETWORK-BASED) LOCATION Access coarse location sources such as the cellular network database to determine an approximate device location, where available. Malicious applications can use this to determine approximately where you are.</span> <span itemprop="permissions">NETWORK COMMUNICATION FULL INTERNET ACCESS Allows an application to create network sockets. </span> <span itemprop="permissions">PHONE CALLS READ PHONE STATE AND IDENTITY Allows the application to access the phone features of the device. An application with this permission can determine the phone number and serial number of this phone, whether a call is active, the number that call is connected to and the like. </span> </div>
Here's how this sample works:
- Each listed app is enclosed in a
<div>, like this:<div itemscope itemtype="http://schema.org/SoftwareApplication">.itemscopeindicates that the HTML enclosed in the<div>is an item, anditemtype="http://schema.org/SoftwareApplication"indicates that the item is a mobile software app. - Each
<div>describes properties of the app, such as its name, description, and required operating system. To label app properties, each element containing one of these properties, such as<div>or<span>is assigned anitempropattribute. For example,<span itemprop="permissions">NETWORK COMMUNICATION</span>. - The app includes nested Review
and Offer
information.
Typically, Google won't display content that is not visible to the user. In other words, you generally shouldn't show content to users in one way, and use hidden text to mark up information separately for search engines and web applications. However, in some situations it can be valuable to provide search engines with more detailed information, even if you don't want that information to be seen by visitors to your page. In this case, you can use the meta tag to display this information, like this:
<meta itemprop="reviewCount" content="11116" />
This tells the rich snippets parser that it should use the value in the content attribute to find the count of reviews the app has received.
You can also use the datetime attribute to specify dates in a machine-friendly format, like this:
<time itemprop="publishDate" datetime="2011-06-09">June 9, 2011</time>
Once you've marked up your site's content, you can test it using the structured data testing tool
. Google will discover it the next time we crawl your site (although it may take some time for rich snippets to appear in search results). If rich snippets aren't appearing for your site, see possible reasons why.
You can also let us know about your content
. Google won't be able to individually reply to your message, but we may use the information you supply to improve our detection and display of information in search results.
