Rich snippets - Software applications

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:

a Google rich snippet showing information about a software application

Properties

An application can have a number of different properties which you can label using the following extension to the schema.org new window vocabulary. For each app, you can include nested Things (types of information supported by the schema.org vocabulary—for example, Review new window or Offer new window. 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 (including ratingValue and either ratingCount or reviewCount)
  • offers (including price and currency)
  • operatingSystems
  • softwareApplicationCategory

 

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 new window or Organization new window. The author of the app.
aggregateRating AggregateRating new window The aggregate rating of the app.
reviews Review new window A review of the application.
offers Offer new window 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 new window.
inLanguage Text The language of the application, in IETF BCP 47 format new window.
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 new window.
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 new window A count of specific user interactions with this item. For example: 20 likes, 30 comments, 2 downloads.
videos VideoObject new window An embedded VideoObject new window.
screenshots ImageObject new window An embedded ImageObject new window.
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">. itemscope indicates that the HTML enclosed in the <div> is an item, and itemtype="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 an itemprop attribute. For example, <span itemprop="permissions">NETWORK COMMUNICATION</span>.
  • The app includes nested Review new window and Offer new window 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 new window. 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.