I'm trying to insert a google now hotel reservation card using lodgingReservation schema in my hotel's confirmation email.
It seems working all, but in my iphone I can't see the hotel image I've insert in the json.
I read all the google documentation but I didn't find a working example with image display of an hotel reservation, only an image of the final result.
Here's an example:
<html>
<head>
<script type=3D"application/ld+json">
{
"#context": "http://schema.org",
"#type": "LodgingReservation",
"reservationNumber": "20161",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"#type": "Person",
"name": "Mario Rossi",
"email": "demo#gmail.com"
},
"reservationFor": {
"#type": "LodgingBusiness",
"name": "Hotel Beverly",
"address": {
"#type": "PostalAddress",
"streetAddress": "Viale Portofino 2",
"addressLocality": "Rimini",
"addressRegion": "RN",
"postalCode": "47833",
"addressCountry": "IT"
},
"telephone": "+390541375288",
"contactPoint" : {
"#type" : "ContactPoint",
"telephone" : "+390541375288",
"contactType" : "Reception",
"email" : "info#beverlyhotel.com",
"faxNumber" : "+390541372288"
}
},
"checkinDate": "2016-02-04T12:00:00-08:00",
"checkoutDate": "2016-02-08T10:00:00-08:00"
}
</script>
</head>
<body>
<p>
Google Now card in Gmail test.
</p>
</body>
</html>
I've insert an example url of an image, in google documentation I didn't find any word to explain the usage of the image item (min and max width and height ecc...).
I've used the example of #Franco and here's the google app result and the google calendar result (in calendar I don't have idea where google take the photo...)
After researching more, I came to the conclusion that the Now card will not parse the image in your markup, but will use an image from the hotel's Google + page.
I've conducted a test with Grand Hotel et de Milan and UNA Hotel Cusani (I could not find Hotel Beverly di Rimini anywhere). My markup below (no image property) generated a Now card with an image from the Grand Hotel et de Milan Google + page (1st pic in the photo section):
<script type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "LodgingReservation",
"reservationNumber": "GHM123",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"#type": "Person",
"name": "Mario Rossi",
"email": "example#gmail.com"
},
"reservationFor": {
"#type": "LodgingBusiness",
"name": "Grand Hotel et de Milan",
"address": {
"#type": "PostalAddress",
"streetAddress": "Via Alessandro Manzoni, 29",
"addressLocality": "Milano",
"addressRegion": "IT",
"postalCode": "20121",
"addressCountry": "IT"
},
"telephone": "+3902123456789",
"contactPoint" : {
"#type" : "ContactPoint",
"telephone" : "++39 02 723141",
"contactType" : "Reception",
"email" : "info#reception.com"
}
},
"checkinDate": "2016-01-21T12:00:00-08:00",
"checkoutDate": "2016-01-25T10:00:00-08:00"
}
</script>
This is the Now card result on a iPhone 6 (note I also received the same result when using UNA Hotel Cusani):
Update 2/5/16:
I was able to generate a Now card with the Beverly logo which looks it's the "profile" image on the Google + page. I didn't use the image field. Additionally, the image generated in Inbox was a picture from the Google + as well. My test script below with pictures of the results:
<script type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "LodgingReservation",
"reservationNumber": "abcdef123456",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"#type": "Person",
"name": "Mario Rossi",
"email": "example#gmail.com"
},
"reservationFor": {
"#type": "LodgingBusiness",
"name": "Hotel Beverly",
"address": {
"#type": "PostalAddress",
"streetAddress": " Viale Portofino, 2",
"addressLocality": "Rimini",
"addressRegion": "RN",
"postalCode": "47924",
"addressCountry": "IT"
},
"telephone": "+3902123456789",
"contactPoint" : {
"#type" : "ContactPoint",
"telephone" : "+3902123456789",
"contactType" : "Reception",
"email" : "info#reception.com",
"faxNumber" : "+3902123456789"
}
},
"checkinDate": "2016-02-04T16:00:00-08:00",
"checkoutDate": "2016-02-06T10:00:00-08:00"
}
</script>
Related
We are using the Hotel Reservation Schema and all the information is showing correctly in the Gmail SmartCard view (top of email), however looking at the generated Calendar event, the name and address for the stay shown is not correct.
The Email Markup Tester Tool validates correctly.
<script type="application/ld+json">
{
"#context": "http://schema.org",
"#type": "LodgingReservation",
"reservationNumber": "12345",
"reservationStatus": "http://schema.org/Confirmed",
"underName": {
"#type": "Person",
"name": "Test Person"
},
"reservationFor": {
"#type": "LodgingBusiness",
"name": "The Property Name",
"address": {
"#type": "PostalAddress",
"streetAddress": "123 Fake Street",
"addressLocality": "Property City",
"addressRegion": "NC",
"postalCode": "28469",
"addressCountry": "US"
},
"telephone": "866-555-5555"
},
"checkinDate": "2022-09-24T16:00:00-08:00",
"checkoutDate": "2022-09-27T11:00:00-08:00",
"modifiedTime": "2022-09-19 09:09:04",
"modifyReservationUrl": "hxxps://valid.link.to.lodging.property"
}
</script>
Is there other markup that is needed in the email so the event that was automatically created from the email has the correct information (while maintaining it as a lodging reservation)?
Where does the calendar event name/address pull from by default? What is used for the "LodgingBusiness" schema on the website (not passed in the email) is not what is showing in the calendar event either.
Thanks.
I have a blog where we add Schema to each post and what works perfectly and is validated by the SDTT then breaks on a new blog despite the only things changing is the content. I feel like I have been staring at the same 20 lines for hours. Can anyone see what might be different between these two.
Working Structured Data:
<script type="application/ld+json">// <![CDATA[
{
"#context": "https://schema.org",
"#type": "NewsArticle",
"mainEntityOfPage": {
"#type": "WebPage",
"#id": "https://blog.realmanage.com/announcements/for-the-4th-time-in-five-years-realmanage-appears-on-the-inc.-5000"
},
"headline": "For the 4th time in Five Years, RealManage Appears on the Inc.5000",
"image": ["https://blog.realmanage.com/hubfs/Inc%20Announcement.png"
],
"datePublished": "2020-08-31T10:10:00+08:00",
"dateModified": "2020-08-28T02:24:00+08:00",
"author": {
"#type": "Person",
"name": "Amanda Causey"
},
"publisher": {
"#type": "Organization",
"name": "RealManage",
"logo": {
"#type": "ImageObject",
"url": "https://www.realmanage.com/hs-fs/hubfs/Logo/RealManage_Logo_1.png?width=1324&name=RealManage_Logo_1.png"
}
},
"description": "Inc. magazine today revealed that RealManage is No. 4646 on its annual Inc. 5000 list, the most prestigious ranking of the nation’s fastest-growing private companies. The list represents a unique look at the most successful companies within the American economy’s most dynamic segment—its independent small businesses. Intuit, Zappos, Under Armour, Microsoft, Patagonia, and many other well-known names gained their first national exposure as honorees on the Inc. 5000."
}
// ]]>
</script>
Non-working code:
<script type="application/ld+json">// <![CDATA[
{
"#context": "https://schema.org",
"#type": "NewsArticle",
"mainEntityOfPage": {
"#type": "WebPage",
"#id": "https://blog.realmanage.com/creating-a-maintenance-chart-for-your-association-realmanage"
},
"headline": "Creating a Maintenance Chart for Your Association - RealManage",
"image": [
"https://f.hubspotusercontent20.net/hubfs/1849073/AdobeStock_396601443.jpeg”
],
"datePublished": "2021-06-08T09:38:00+08:00",
"dateModified": "2021-06-08T09:38:00+08:00",
"author": {
"#type": "Person",
"name": "Katie Vaughan"
},
"publisher": {
"#type": "Organization",
"name": "RealManage",
"logo": {
"#type": "ImageObject",
"url": "https://www.realmanage.com/hs-fs/hubfs/Logo/RealManage_Logo_1.png"
}
},
"description": "When it comes down to who pays, the smallest dispute can blow into a neighborhood disaster.”
}
// ]]></script>
The problem is that the quote after 396601443.jpeg” is not a standard " but a ”, like those Microsoft Word uses to make a text nicer. And there's another one closer to the end, after "disaster".
Bt the way, you can paste the JSON here and validate it.
I'm using the following JSON to produce a review snippet:
<script type="application/ld+json">
{
"#context": "https://schema.org/",
"#type": "Review",
"name": "Great service from the start.",
"author": {
"#type": "Person",
"name": "Chris Tonich"
},
"reviewBody": "Very thorough...would highly recommend!",
"aggregateRating": {
"#type": "AggregateRating",
"ratingValue": "4.9",
"bestRating": "5",
"ratingCount": "110",
"itemReviewed": {
"#type": "Product",
"image": "https://www.homeintegrity.com.au/wp-content/uploads/2020/12/hi-new-logo2.jpg",
"name": "Pre-Purchase Building Inspections",
"priceRange": "$$",
"telephone": "08 8375 8130",
"address" :{
"#type": "PostalAddress",
"streetAddress": "PO Box 163",
"addressLocality": "Scarborough",
"addressRegion": "WA",
"postalCode": "6019",
"addressCountry": "AU"
}
}
}
}
</script>
The Google Rich Snippet Test says:
Why am I receiving the error when the Review contains aggregateRating which contains itemReviewed?
Why does it say I rated a Review rather than an Item?
Help appreciated.
Your structure is not according to the schema found on https://schema.org/
A Review must contain a field itemReviewed (or be embedded in the object, which is reviewed). (see examples at https://schema.org/Review)
A Review on the other hand must not contain an AggregateRating (see https://schema.org/AggregateRating), because an AggreateRating may only be a sub-node of a Brand, CreativeWork, Event, Offer, Organization, Place, Product, or Service. Note that these types may contain a Review too.
Your structure roughly is as follows:
Review "Great service from the start."
Author "Chris Tonich"
Aggregate rating "4.9"
Product "Pre-Purchase Building Inspections"
Address "6019 - ..."
What you probably want is something along the lines of:
LocalBusiness "Pre-Purchase Building Inspections"
Address "6019 - ..."
Review "Great service from the start."
Author "Chris Tonich"
Aggregate rating "4.9"
I am setting up schema for rating stars to show up on google search results, I got this json script, It does not have any error when I test the code snippet, But shows an error :
Missing '}' or object member name.
<script type=application/ld+json>{
"#context": "https://schema.org/",
"#type": "Review",
"itemReviewed": {
"#type": "LocalBusiness",
"image": "https://www.rmsdrill.com/wp-content/uploads/2019/01/RMS-Logo-header.png",
"name": "Rms Drill",</p>
<p> "telephone": "(800) 605-1608",
"address" :{
"#type": "PostalAddress",</p>
<p> "addressLocality": "Dallas",
"addressRegion": "TX",
"postalCode": "75219",
"addressCountry": "US"
}
},
"reviewRating": {
"#type": "Rating",
"ratingValue": "4"
},
"name": "Working with Rober Strunks.",
"author": {
"#type": "Person",
"name": "Dr. Jason Kihle"
},
"reviewBody": "After just one season of working with Robert Strunks, it is absolutely clear that he is everything that you want in a professional marching band drill designer. In addition…",
"publisher": {
"#type": "Organization",
"name": "RMS Drill"
}
}</script>
In the future, use this: https://jsonformatter.curiousconcept.com/
{
"#context":"https://schema.org/",
"#type":"Review",
"itemReviewed":{
"#type":"LocalBusiness",
"image":"https://www.rmsdrill.com/wp-content/uploads/2019/01/RMS-Logo-header.png",
"name":"Rms Drill",
"telephone":"(800) 605-1608",
"address":{
"#type":"PostalAddress",
"addressLocality":"Dallas",
"addressRegion":"TX",
"postalCode":"75219",
"addressCountry":"US"
}
},
"reviewRating":{
"#type":"Rating",
"ratingValue":"4"
},
"name":"Working with Rober Strunks.",
"author":{
"#type":"Person",
"name":"Dr. Jason Kihle"
},
"reviewBody":"After just one season of working with Robert Strunks, it is absolutely clear that he is everything that you want in a professional marching band drill designer. In addition…",
"publisher":{
"#type":"Organization",
"name":"RMS Drill"
}
}
I am just trying to get our events onto google using markup and I am fairly new to all of this so I hope someone can help I have just checked the following and got the error above
<script type="application/ld+json">
{
"#context": "https://schema.org",
"#type": "Event",
"name": “Staunton Harold Sportive”,
"startDate": "2019-05-26T08:00",
"endDate": "2019-05-26T17:00",
"location": {
"#type": "Place",
"name": “Staunton Harold Hall”,
"address": {
"#type": "PostalAddress",
"streetAddress": “Melbourne Road”,
"addressLocality": “Ashby De la Zouch“,
"postalCode": "LE65 1RT",
"addressRegion": “Derbyshire”,
"addressCountry": "UK”
}
},
"image": [
"https://static.wixstatic.com/media/36c4d1_84383c3423f0429b8fe7988a0382dbb0~mv2_d_3905_2194_s_2.png/v1/fill/w_1084,h_608,al_c,usm_0.66_1.00_0.01/Staunton%20Harold%20sportive.png",
],
"description": "
Fun - 14K
Short - 40K
Medium - 100K
Long - 160K The Staunton Harold Sportive starts from the privately owned, estate in the stunning surroundings of Staunton Harold Hall estate, providing the perfect backdrop for a fun and enjoyable bike ride.",
"offers": {
"#type": "Offer",
"url": "https://www.triathlon-events.com/staunton-harold-sportive",
"price": “20",
"priceCurrency": “GBP”,
"availability": "https://schema.org/InStock",
"validFrom": "2018-05-26T16:00"
},
“Organizer”: {
"#type": “Organizer”,
"name": “Choose Sports Ltd”
}
}
</script>
It could be because you have curly quotation marks in places instead of straight ones e.g. “Staunton Harold Sportive” needs to have the straight quotations marks as used in "https://schema.org". I'd start by swapping those out and retest. Hope that helps.