Google partners may provide structured menu data to Google through their Actions Center Ordering Redirect integration for use in the Menu section of a restaurant's placesheet on Google Maps Mobile (Android and iOS).
Menu data are ingested through your existing Actions Center Ordering Redirect integration using a capability called generic feeds. Before you begin, take a few minutes to ensure that you have completed the account setup steps and read through Using the Generic feed dropbox for an overview of the generic feed upload process and an explanation on how to configure your account for generic feed uploads.
Creating and uploading menu feeds
When creating and uploading menu feeds, please keep the following in mind:
- Follow the spec described in the
menu feed
for menu data files. Menu data file names should be unique between uploads.
It is recommended to include a timestamp in the file name, for example,
menu1_1633621547.json
. - In the fileset descriptor, set the
name
field togoogle.food_menu
. For an example of the descriptor file, refer to the Descriptor File JSON sample. Descriptor file names should be unique between uploads. It is recommended to include a timestamp in the file name, for example,descriptor_1633621547.filesetdesc.json
. The descriptor file should be uploaded to the generic SFTP dropbox as part of the menu feed. - Menu feeds should be uploaded to the generic SFTP dropbox daily as full refreshes.
- Follow the spec described in merchants feed for merchants feed files. For an example of a merchants feed file, refer to the merchant feed JSON sample.
It is recommended to include a timestamp in the file name, for example,
merchant1_1633621547.json
. - Merchants feeds should be uploaded to the Merchants SFTP dropbox daily as full refreshes.
- Menu and Merchants feed SFTP dropbox info can be found in the Configuration > Feeds section of the partner portal.
- Menu and Merchants feed ingestion status can be found in the Feeds > History section of the partner portal.
Working with menu item options
Menu item options can be specified using the
MenuItemOption
proto. Menu item options are displayed as a flat list under the menu item.
See the example below.
Only required menu item options are supported. A required menu item option is one that the customer must choose when ordering. For example, when ordering a pizza, size is a required option. Menu item options that are optional (i.e. "option to add avocado") are not supported.
Since menu item options are displayed as a single flat list, partners with multiple sets of required options for a single menu item (for example, a latte with size options and milk options) must decide how best to display those options in Google. Google recommends the following heuristics:
- If only one required option set affects the price, prefer to include that option set in feeds.
- For all other cases, it is up to the partner to determine how best to represent the menu item options. Creating long lists of options for all possible combinations of options is not recommended.
When including menu item options under a menu item either:
- The menu item must have at least one offer with a price (for cases when the menu item options do not affect the price).
- The menu item must have a set of options each priced equally to the total price of the item with that option selected.
The price should be provided only for the menu item or for its options, but not for both.
How to view the placesheet menu
After menu feeds are live, they will be visible on the restaurant placesheet menu. Note that launch prerequsite conditions must be met before feeds are live. If multiple sources are providing menus for the same merchant, the merchant can choose the preferred provider in their Google Business Profile. For more information on how a merchant can select a perferred provider, see Manage your menu.
The following Google surfaces will currently display the menu tab on the placesheet:
Product | Device |
---|---|
Google Search | Mobile Web |
Google Search | Mobile Native |
Google Maps | Mobile Native |
In order to test on a non-mobile device, use your browser developer tools to simulate a mobile device.
- In the Inventory View, select the merchant and click on the placesheet link to view the restaurant placesheet.
-
Open Chrome Developer Tools (right click Inspect or View -> Developer -> Developer Tools), select the mobile device type
and refresh the page.
Best Practices
The following are best practices to follow when developing menu feeds.
- Associate only one menu to a merchant.
- Provide the preferred language as the first language in the TextField. If you are sending multiple LocalizedText objects, currently just the first object in the text list will be displayed to users.
- All menu items should be added to menu sections, do not add menu items directly to the menu.
- Provide content using utf-8 encoding. It is not necessary to escape non-ascii characters.
- Limit feed files or shards to 1,000 as mentioned in Using the Generic feed dropbox.