How schema markup can be helpful for mobile app website? - data-structures

I want to implement schema markup for a mobile app website. I read schema.org/MobileApplication, but there are lot of properties. I am not getting which property are useful to give more effective output for local search?

The schema is important to every website page. Do not confuse, use a required property to your mobile application website.

Schema markup allows search engine to analyze vast information in shortcut method. For Mobile app website you would like to use properties like- downloadUrl, countriesSupported, fileSize, about, author, description and image.

data-structures schema google-local-search
<div itemscope itemtype="http://schema.org/SoftwareApplication">
<span itemprop="name">Angry Birds</span> -
REQUIRES <span itemprop="operatingSystem">ANDROID</span>
<link itemprop="applicationCategory" href="http://schema.org/GameApplication"/>
RATING:
<div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<span itemprop="ratingValue">4.6</span> (
<span itemprop="ratingCount">8864</span> ratings )
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Price: $<span itemprop="price">1.00</span>
<meta itemprop="priceCurrency" content="USD" />
</div>
</div>

Related

How can I use markdown in the Homepage layout of the VuePress?

In the features tag on the homepage layout of the Vuepress, any markdown notation can't be used due to get the error.
So, I'd like to make my custom layout which is extended from the default homepage layout and to get possible to use markdown.
Is this possible? Any suggestion is welcome, thank you!
I agree with #Sun Haoran's answer, but want to note a good way to add content/html is using a component.
We created a front page component called HomeFeatures.vue. (see the repo) Also, we pretty much just copied this straight from vuepress.
<template>
<div class="features">
<div class="feature">
<h2>AccuTerm</h2>
<p>
Getting Started<br />
Licensing<br />
Desktop<br />
Web<br />
Mobile
</p>
</div>
<div class="feature">
<h2>jBASE</h2>
<p>All Docs<br /></p>
</div>
<div class="feature">
<h2>OpenQM</h2>
<p>Main (Coming Soon!)<br /></p>
</div>
<div class="feature">
<h2>MV Dashboard</h2>
<p>
Introduction<br />
Installation Guide<br />
Programmers Guide
</p>
</div>
<div class="feature">
<h2>MV Connect</h2>
<p>
Overview<br />
Getting Started<br />
API
</p>
</div>
<div class="feature">
<h2>Customer Portal</h2>
<p>
All Docs
</p>
</div>
</div>
</template>
<script>
export default {
name: 'Features'
};
</script>
And just included it like so: (see the repo)
---
home: true
heroImage: /assets/img/logo-grey.png
heroText: Product Documentation
tagline: Welcome to the future
footer: MIT Licensed | Copyright © 2019-present Company Name
---
<HomeFeatures />
Our docs live here if you'd like to see it in action.
Currently, you can't without going through a lot of trouble. The default theme's homepage is using YAML front matter to pass on user config texts, which will not be parsed as markdown.
Personally, I suggest you try to use HTML directly with a customized layout. To use a customized layout for the homepage, check my other answer, and to use HTML see the relavent issue in VuePress #2186

Location-based price in Schema.org

My client is a retail store with an online boutique on Magento. I'm implementing Schema.org in Microdata.
The problem comes from the fact that his prices are different depending on the closest city from the user. What "offer" elements do I use in order to set things straight with machines?
My fear is that Google could show the wrong price in the SERP. I don't want to deceive users!
A single Product can have multiple Offer items (via the offers property), exactly for such a purpose.
In the Offer item, you use properties that describe in which situation (for whom, when, etc.) the offer is valid. For location-based offers, the eligibleRegion property can be used:
[…] the geo-political region(s) for which the offer […] is valid.
(With the ineligibleRegion property you can list for which location the offer is not valid.)
So in Microdata it could look like this:
<article itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">Product 1</h1>
<section itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<h2>Offer 1</h2>
<div itemprop="eligibleRegion" itemscope itemtype="http://schema.org/City">…</div>
</section>
<section itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<h2>Offer 2</h2>
<div itemprop="eligibleRegion" itemscope itemtype="http://schema.org/City">…</div>
</section>
</article>
The documentation for Google’s Product Rich Snippet doesn’t mention a case where a Product has multiple Offer items (except for the different case of AggregateOffer), so it’s unclear if a Rich Snippet can be displayed in such a case.

Offer (with priceSpecification) nested within Product throws Warning

Nesting an Offer that has a priceSpecification inside a Product throws up an Incomplete microdata warning in Google Rich Snippets testing tool.
This
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
<p itemprop="description">Cabernet Sauvignon.</p>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<p itemprop="priceSpecification" itemscope itemtype="http://schema.org/priceSpecification">Prices start at
<meta itemprop="priceCurrency" content="GBP" />£<span itemprop="price">0.71</span> (per bottle)</p>
<meta itemprop="validThrough" content="2013-09-01" />
</div>
</div>
throws the following warning in google rich snippets testing tool:
Warning: Incomplete microdata with schema.org.
If I move Offer outside Product:
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
<p itemprop="description">Cabernet Sauvignon.</p>
</div>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<p itemprop="priceSpecification" itemscope itemtype="http://schema.org/priceSpecification">Prices start at
<meta itemprop="priceCurrency" content="GBP" />£<span itemprop="price">0.71</span> (per bottle)</p>
<meta itemprop="validThrough" content="2013-09-01" />
</div>
then the warning is no longer thrown up, but this doesn't appear to make sense, as the Offer is not linked to the Product it's applicable to.
All the examples at schema.org nest Offer within Product, however, none of them use priceSpecification. I could only find one blog post where Offer is not nested within Product: http://seolobster.de/richsnippets-schema-org-products-update. This does not fill me with confidence to use in a live environment.
Which is correct? Especially if you throw in more than one Offer?
I have the same problem and I just figured it out though painstaking trial-and-error: The problem is that, even though price is part of the priceSpecification schema, it still needs to be defined outside the priceSpecification metatag in the regular offer, too!
I needed priceSpecification because we show prices including and excluding VAT, and now I have no frickin' idea on how to implement this! If I HAVE to define the price in offer, how do I tell it it's with or without VAT? valueAddedTaxIncluded is not part of the offer schema! An empty div just including valueAddedTaxIncluded=true? Okay, so how do I implement the other price without the VAT then? That would define the price twice in the offer, and that's not possible!
Also, why is schema.org and getschema.org so damn effing useless when it comes to samplecode and how to properly implement any given schema? If you want people to adopt some fancy new technology - TELL THEM HOW TO DO IT!!
Based on your example I don't think you need to use a separate priceSpecification property. Instead you can directly add the price and priceCurrency property to the Offer like the example below.
<div itemscope itemtype="http://schema.org/Product">
<h1 itemprop="name">1984 Vintage Selection Cabernet Sauvignon</h1>
<p itemprop="description">Cabernet Sauvignon.</p>
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
Prices start at <meta itemprop="priceCurrency" content="GBP" />£
<span itemprop="price">0.71</span> (per bottle)
</div>
</div>
As stated before, the offer also needs the price-tag. One solution that the tag-tester allows is adding the data as a meta-tag like this:
<meta itemprop="price" content="79" />
I'm not sure if google will parse and show this however.

How can I add structured data to one page containing event and reviews of event?

I have a HTML page that displays an event. Together with the event there are reviews and an aggregated rating.
Now I want to add structured data with schema.org to be extracted by search engines.
The item type http://schema.org/Event does not support the properties "aggregateRating" or "review".
I tried to put different item scopes next to each other. I have linked them by using the "itemReviewed" property as a link to an "itemid":
<div itemid="#myevent" itemtype="http://schema.org/Event" itemscope>
....
<dl itemtype="http://schema.org/AggregateRating" itemscope>
<link href="#myevent" itemprop="itemReviewed">
<meta content="4.5" itemprop="ratingValue">
<meta content="6" itemprop="reviewCount">
...
</dl>
<dl itemtype="http://schema.org/Review" itemscope>
<link href="#myevent" itemprop="itemReviewed">
<p itemtype="http://schema.org/Rating" itemscope
itemprop="reviewRating">Rating: <img src="...">
<meta content="4" itemprop="ratingValue">
</p>
...
</dl>
</div>
Google Rich Snippet Tool does not complain. But in the preview it only displays one of the review items. No display of event date or location. No display of aggregate review.
I don't know if this is just a problem of Snippet Tool or if real Google Search extracts the same.
Could you please tell me how I could improve my markup?
Is the usage of itemid / link correct?
Is there any schema that has startdate, enddate and aggregateRating and reviews?
I'm dealing with the same problem. The best solution I found was to use Microformats.
So you calculate the average rating for the event (rating you want to show on Google's rich snippet) and do this:
<div itemid="#myevent" itemtype="http://schema.org/Event" itemscope class="hreview-aggregate">
<h1 class="fn" itemprop="name">Event</h1>
<div>
Rated <span class="rating">3.5</span>/5 based on <span class="count">11</span> reviews
</div>
<dl itemtype="http://schema.org/AggregateRating" itemscope>
<link href="#myevent" itemprop="itemReviewed">
...
</div>
That should do the trick. The only problem is that then you get Warning
Warning: If count is specified in review aggregate, page should contain reviews. Otherwise you may want to use votes. More information about aggregate reviews.

How to use microformats

I'm trying to add some microformats to my site and testing with google Structured Data Testing Tool is giving me a
Warning: Itemtype not recognized.
What would be the right syntax to get it through?
<div class="vote-message" itemscope itemtype="http://data-vocabulary.org/Rating">
<span itemprop="value">
<span itemprop="bestRating">
5.0/<strong>5</strong>
</span>
Bewertung (<span itemprop="ratingValue">3</span> Stimmen)
</span>
</div>
because http://data-vocabulary.org has been shuttered and replaced with http://schema.org/; if you replace your itemtype attribute's value to itemtype="http://schema.org/AggregateRating", the warning goes away, and you can see the extracted structured data in the structured data tool.

Resources