AdWords
1K members online now
1K members online now
For questions related to Google Shopping and Merchant Center. Learn to optimize your Shopping ads
Guide Me
star_border
Reply

Google Merchant Support for JSON-LD

Visitor ✭ ✭ ✭
# 1
Visitor ✭ ✭ ✭

We have noticed that Google Merchant is still not recognizing JSON-LD schema markup for products. The structured data testing tool and search console structured data report show that the markup has no errors, however Google merchant still says I am missing microdata for condition, stock, and pricing. 

 

Based on the above and recently updated Google search documentation, Google now favors JSON-LD instead of microdata. For consistency we are using it for our products. Is it supported? If not, when will it be.

 

If we use JSON-LD, what impact will that have on our product in Google Merchant?

 

The last thread on this was over a year ago, so asking for clarification again. Thank you. Martha.

1 Expert replyverified_user
1 ACCEPTED SOLUTION

Accepted Solutions
Marked as Best Answer.
Solution
Accepted by topic author Martha v
May 2017

Google Merchant Support for JSON-LD

Visitor ✭ ✭ ✭
# 5
Visitor ✭ ✭ ✭

This help-article (https://support.google.com/merchants/answer/7331077) says JSON-LD is supported and recommended.

View solution in original post

Re: Google Merchant Support for JSON-LD

[ Edited ]
Top Contributor
# 2
Top Contributor

schema.org microdata within html markup, is (still) the only officially
documented implementation with respect to automatic-item-updates.

otherwise, the optional automatic-item-updates feature
may be disabled in the merchant-center-account settings.

automatic-item-updates and google-organic-search are rather disjoint;
interpreting structured data in json and embedding data in script-tags
are currently features isolated to google-organic-search crawling --
importantly perhaps, the automatic-item-updates feature is tied to
submitted inventory (feed) data and allows for filling small gaps,
before updated products-data can be resubmitted.

 

without automatic-item-updates, these small gaps cannot be filled,

and the data must be resubmitted -- in the same way that the data

is normally submitted (feed or api), or potentially using an inventory

feed or the api's inventory-resource.

currently, raw html or server-side-scripting are recommended with respect to
merchant-center crawls for policy related issues, the automatic-item-updates
feature, or most everything related to product-listing-ads.

google will usually update the merchant-center documentation or make
an announcement in their official blog, or both, if anything changes --
otherwise, any different results seen would likely be part of testing.

 

Google Merchant Support for JSON-LD

Visitor ✭ ✭ ✭
# 3
Visitor ✭ ✭ ✭

Any update on JSON-LD support by the Google merchant feed? 

Google Merchant Support for JSON-LD

[ Edited ]
Top Contributor
# 4
Top Contributor

the short answer is no.

what google currently officially supports for shopping-ads is indicated here:
https://support.google.com/merchants/topic/6386199

the last official word from a google-employee is that the merchant-center
officially supports only what is currently indicated within the help-articles --
and specifically not json-ld.

the rules, policies, and what is supported for google-organic-search and
the google-merchant-center for shopping-ads are still separate -- except

where otherwise indicated within the merchant-center help-articles, or

on google's official blog posts.

generally, use only server-side updates for anything related to shopping-ads.

for best results, use only what google officially supports according
to the official merchant-center-support help-articles or what google
announces within their official blog posts, that mention shopping-ads
or the merchant-center:
https://support.google.com/merchants/
https://adwords.googleblog.com/


any issues or discrepancies between what is observed and what is officially,
currently, documented in the merchant-center support help-articles may be

reported directly to google as a product defect/complaint and suggestions

for future feature-support may be submitted using google's feedback-form.

Marked as Best Answer.
Solution
Accepted by topic author Martha v
May 2017

Google Merchant Support for JSON-LD

Visitor ✭ ✭ ✭
# 5
Visitor ✭ ✭ ✭

This help-article (https://support.google.com/merchants/answer/7331077) says JSON-LD is supported and recommended.

Google Merchant Support for JSON-LD

[ Edited ]
Top Contributor
# 6
Top Contributor

first, thank you for updating this nearly three-month-old thread.

yes, json-ld is now officially documented as supported --

which was not true at the time of this original post nor

back in february.

see also
https://www.en.advertisercommunity.com/t5/Google-Shopping-and-Merchant/Missing-microdata-for-conditi...

Google Merchant Support for JSON-LD

Follower ✭ ☆ ☆
# 7
Follower ✭ ☆ ☆

First of all, thanks for the information celebird. This is the first i have heard about json+ld perhaps not being supported. It suprised me to read, since google recommends json+ld as best practice for markup.

 

We have recently switched to json+ld and removed "within html" markup. Since the switch merchant center reports that microdata is missing for price and availablility for 100% of merchant center items (14 days+ since the switch). However at the same time the same merchant center feed is reporting the usisal ~0.5% weekly items availability and price updates from crawls as per usual and as expected.

 

Am I to assume that the warning for missing microdata is just an error from merch center or maybe a reporting feature which has not been updated in pace with actual crawler support?

 

Would you recommend us to keep using exclusively json+ld, or should we be looking at an alternative (html markup or maybe api updates) to complement our json+ld?

Re: Google Merchant Support for JSON-LD

[ Edited ]
Top Contributor
# 8
Top Contributor

first, you're welcome.

this original thread is nearly a year old and any new or
related questions are likely better asked in a new thread.

as was indicated, json-ld has (now) been officially
documented as supported and is recommended.

mixing json-ld with other structured-data-formats is not a good practice
and will likely confuse google's processing on a number of fronts and
microdata is not a compliment -- choose either json-ld or microdata,
exclusively, but never both.

generally, for any structured-data implementation for the merchant-center --
json-ld or microdata -- be certain that all implementation details -- assigning
values to each attribute/property -- happen server-side, never client-side.

with respect to shopping-ads and the merchant-center-account --
only physical inventory items should be assigned structured-data --
only physical inventory items should ever be submitted to google --
only one, single, physical inventory is recommended to be displayed
on the link landing-page.

structured-data serves two distinct purposes with respect to shopping-ads:

(a) crawling landing-pages to verify all data meets all google's policies --
such as verifying that all submitted data matches their link landing-pages.

google will also verify that the displayed data on the landing-page,
structured-data on the landing-page, and the submitted data for the
in stock physical inventory item-offer, all match exactly, at all times.

in this context, any mismatches, any discrepancies,
or any issues with processing the structured-data,
will be flagged and usually should be corrected to
prevent future disapprovals or suspensions.

items flagged with a price or physical stock availability
mismatches may result in policy violation issues --
any related flags should not be expected or ignored.

(b) for implementing the automatic-item-updates feature;

in this context, any issues with structured-data must be corrected --
any mismatches or any discrepancies will override any submitted
data for the item-offer and will be considered for potential policy
violation flags.

the displayed data seen by users on the landing-page, structured-data on
the landing-page, and physical reality, must all match exactly, at all times.

otherwise, simply be certain the automatic-item-updates feature is disabled.

api-updates is one alternative to automatic-item-updates,
for correcting temporary issues related to mismatches --

such as price, physical stock, etc -- and related policy

violations; however, if both alternatives are used, then

both must meet all google's policies.

 

if a feed is being used, feed data must still be kept up-to-date at all times.

also note that api-updates also overrides any submitted (feed) data --
api-udates and feeds are not recommended to be used together unless
precautions are taken to carefully coordinate the two implementations.

google wants consistency with respect to what users see and physical reality --
structured-data, automatic-item-updates, inventory-feeds, and product-feeds
are simply a means to that end.

 

google is constantly reviewing submitted data, images, landing-pages, websites,
businesses, business-models, supply-chains, etc., and updating their automated
systems -- policy violation issues may be flagged at any time.


some types of items or business-models are simply not
a good match for shoppings-ads -- to avoid disapproval
or suspension, in those cases, other campaign-types
and ad-formats should be considered for advertising.

 

Re: Google Merchant Support for JSON-LD

[ Edited ]
Top Contributor
# 9
Top Contributor

first, you're welcome again.

if the informational warning is being seen within the diagnostics-area of
a merchant-center-account, be certain that the most up-to-date inventory
data has been resubmitted recently and inspect the website's log files,
to verify that the landing-page was recently crawled.

the diagnostics-tab may only show examples of issues, not all issues,
and the example issues that are shown may be historic or not updated.

the diagnostics-tab is mainly to help find a root-cause of issues --
after an issue is verified and a root-cause is found, google expects
all related items to be fixed, not just those examples; the warnings

are to help prevent future disapprovals or suspensions.

(1) missing-microdata-for-condition and missing-microdata-for-price is
usually due to implementation issues -- json-ld should be recognized.

be certain the values being updated are assigned server-side, not client-side.

if the messages are recent and google has re-crawled the site,
and the json-ld is valid, then the information may not meet all
google's related policies for shopping-ads.

for example, be certain there is only one, single, item on the landing-page.

(2) as to variants --

 

first, variants submitted and landing-page details must follow all
google's variant policies -- any item that does not follow google's
variant policies may be flagged after the site is crawled.

for example, only variant items that are in stock may be submitted.

for example, each physical variant item submitted must have an
identical item_group_id value and at least one unique variant
attribute value, for all items in the variant-group.

for example, the link-landing-page should match the variant exactly.

a typical method to conform to google's policies is to submit each variant
item with a distinct url link -- either as separate pages or url-parameters;
then, the landing-page details and structured-data  is changed, server-side,

to exactly match the physical variant being submitted.
e.g.

http://www.example.com/en-gb/products/large-red-wagon.html
http://www.example.com/en-gb/products/small-red-wagon.html
http://www.example.com/products/wagon?size=small&color=red&locale=en-gb

then, the id in the submitted data (feed) for the single item-offer,
and the sku within the structured-data for the single item-offer,
must match exactly.

any global-trade-data submitted (gtin, brand, or mpn) for the one item-offer,
and landing-page structured-data for the one item-offer, must match exactly.

note that google has no requirement for submitting all variants --
if variants cannot be submitted properly then, to avoid disapproval,
simply submit only the default physical item on the landing-page.

otherwise, if variants cannot be preselected or separated,
then, google has rather strict rules for structured-data --
below is one example of structured-data for multiple variants
on the page:

<script type="application/ld+json">
  [
   {
        "@context": "http://schema.org/",
          "@type": "Product",
          "sku": "eg-1337-json-varient-silver",
          "gtin14" : "12345678901234",
          "mpn": "manufacturer-925873",
          "image": "http://www.example.com/images/eg-1337-silver.jpg",
          "name": "Title naming the one exact physical item-offer in silver",
          "description": "Physical characteristics of this one physical item.",
          "brand": {
            "@type": "Thing",
            "name": "ManufacturersBrandName"
          },
          "color" : "Silver",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "USD",
            "price": "119.99",
            "itemCondition": "http://schema.org/UsedCondition",
            "availability": "http://schema.org/InStock"
          }
     },
    {
        "@context": "http://schema.org/",
          "@type": "Product",
          "sku": "eg-1337-json-varient-gold",
          "gtin14" : "12345678901234",
          "mpn": "manufacturer-925873",
          "image": "http://www.example.com/images/eg-1337-gold.jpg",
          "name": "Title naming the one exact physical item-offer in gold",
          "description": "Physical characteristics of this one physical item.",
          "brand": {
            "@type": "Thing",
            "name": "ManufacturersBrandName"
          },
          "color" : "Gold",
          "offers": {
            "@type": "Offer",
            "priceCurrency": "USD",
            "price": "3119.99",
            "itemCondition": "http://schema.org/UsedCondition",
            "availability": "http://schema.org/InStock"
          }
    }
  ]
</script>


(3) if the exact data that is being submitted and the corresponding landing-page
is posted here within the public-forums, forum-members may certainly be willing
to look more closely at the issue.

otherwise, google does not allow soliciting for help outside the community.

otherwise, google may be contacted directly.

 

Google Merchant Support for JSON-LD

Follower ✭ ☆ ☆
# 10
Follower ✭ ☆ ☆

Very, very usefull information, thank you. Im sort of sad that I couldnt find these resources on my own.

 

In your example json-ld with product variants in an array - how would you deal with marking up ratings in that example when the ratings are shared among all variants (say you have 100 ratings).