[null,null,["最后更新时间 (UTC):2025-07-26。"],[[["\u003cp\u003eGoogle's Reservations End-to-End integration allows partners to provide structured menu data for restaurants, displayed on Google Search and Maps.\u003c/p\u003e\n"],["\u003cp\u003ePartners need to follow the menu feed specification, create daily full refresh feeds, and upload them to the designated SFTP dropbox.\u003c/p\u003e\n"],["\u003cp\u003eMenu item options are supported only if they are required for ordering, and partners should carefully consider how to represent them for optimal display.\u003c/p\u003e\n"],["\u003cp\u003eRestaurants may have multiple menu providers, and merchants can choose their preferred provider in their Google Business Profile.\u003c/p\u003e\n"],["\u003cp\u003eBest practices include using utf-8 encoding, limiting feed files to 1,000, and associating only one menu per restaurant, among others.\u003c/p\u003e\n"]]],["Partners can integrate structured menu data into Google using the Reservations End-to-End integration via Generic Feeds. To start, complete account setup and understand the feed upload process. Menu data should be formatted according to the specified schema, including unique filenames with timestamps. Upload full refreshes daily to the generic SFTP dropbox, limiting to 1000 shards. A single restaurant can have multiple menus by using `MenuSections` or share menus across multiple restaurants using the `merchant_ids`. Follow best practices like providing rich menu content and use the Menu Visualizer tool for structure confirmation.\n"],null,["# Overview\n\n| **Note:** Please fill out [this](https://tables.area120.google.com/u/0/form/9C6jXsBTJ-H87lYbmAA4L_/t/bfEXtCjIOfN88524UMV4zX8n1lccicZLz1xpvLdMmkGpbSm8og5CHXHdrn2heNl_Sp) form if you are interested in enabling menus for your existing Reservations End-to-End integration.\n\n\nGoogle partners can provide structured menu data to Google through the Reservations End-to-End\nintegration for use in the **Menu** section of a restaurant's Google Business Profile and other\nentry points across Google consumer surfaces.\n\n\nMenu data are ingested using the Generic Feeds. Before you begin:\n\n1. Make sure that you have completed [account setup](/actions-center/verticals/reservations/e2e/integration-steps/setup)\n2. Understand the [Generic Feed upload process](/actions-center/verticals/reservations/e2e/add-ons/add-menus/generic-sftp)\n3. Understand how to [configure](/actions-center/verticals/reservations/e2e/add-ons/add-menus/generic-sftp) your account for Generic Feed uploads\n\nSchema\n------\n\nThe full menu schema can be found [here](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed).\n\nCreating and uploading Menu Feeds\n---------------------------------\n\nWhen creating and uploading Menu Feeds, follow these guidelines and conventions:\n\n- To provide restaurant details, follow the data specification described in [Merchant Feed](/actions-center/verticals/ordering/reservations/e2e/reference/feeds/merchants-feed). For example JSON file refer to the [sample JSON](/actions-center/verticals/reservations/e2e/reference/feeds/merchants-feed#samples). Data file names should be unique between uploads. It is recommended to include a timestamp in the filename, for example, `menu1_1633621547.json`\n- In the fileset descriptor for the menu feed, set the `name` field to `google.food_menu`. To see an example of the descriptor file contents, refer to the [Descriptor File JSON sample](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#descriptor-file). The names of descriptor files should be unique between uploads. It is recommended to include a timestamp in the filename, for example, `descriptor_1633621547.filesetdesc.json`. The descriptor file must be uploaded to the generic SFTP server as part of the menu feed.\n- Feeds must be uploaded to the generic SFTP server on a daily cadence as full refreshes.\n- Limit feeds to 1000 shards (files) as mentioned in [Using the Generic Feed sftp](/actions-center/verticals/reservations/e2e/add-ons/add-menus/generic-sftp)\n\nFeed ingestion status can be found in the [Feeds \\\u003e History](https://partnerdash.google.com/apps/reservewithgoogle/dashboards/feeds)\nsection of the partner portal. Feed SFTP server info can be found in the [Configuration \\\u003e Feeds](https://partnerdash.google.com/apps/reservewithgoogle/configuration/feeds)\nsection of the Partner Portal.\n\n\n**Figure 1:** Generic SFTP server info\n\nFeed ingestion status can be found in the [Feeds \\\u003e History](https://partnerdash.google.com/apps/reservewithgoogle/dashboards/feeds)\nsection of the Partner Portal. Feed SFTP server info can be found in the [Configuration \\\u003e Feeds](https://partnerdash.google.com/apps/reservewithgoogle/configuration/feeds)\nsection of the Partner Portal.\n\nWorking with menu item options\n------------------------------\n\n\nMenu item options can be specified using the\n[`MenuItemOption`](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#MenuItemOption-definition) proto.\n| **Note:** The exact user experience will depend on the Google surface. In Google Search, only the lowest priced MenuItemOption will be displayed to the user.\n\n\nPartners with multiple sets of\nrequired options for a single menu item (for example, a latte with size options and milk options)\nmust decide how best to display those options in Google. Google recommends the following:\n\n- The menu feed should match the partner's ordering site (or the restaurant's dine-in menu if you don't have an ordering site for the location). If the item is displayed with an individual price on the ordering site, a [`MenuItem`](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#MenuItem-definition) should be used. If the item is displayed with a base price and multiple options, a [`MenuItemOption`](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#MenuItemOption-definition) should be used.\n- Avoid including a long list of options, for example:\n - Chicken burrito\n - Chicken burrito with cheese\n - Chicken burrito with salsa\n - Chicken burrito with salsa and cheese\n - Chicken burrito with guacamole\n - Chicken burrito with guacamole and salsa\n- Menu item options are only supported if the dish **requires** one of the options to be selected. For example, when ordering a pizza, size is a required option. Menu item options that are for add-ons (i.e. \"option to add avocado\") are not supported and shouldn't be included in feeds.\n\nThe menu item option price should be the full price of the item with that option selected.\nThe price should be set for the menu item or for its options, but not for both.\n\nRestaurants with multiple menus\n-------------------------------\n\n\nA single restaurant (Entity) can only have one menu. For a restaurant which has multiple menus (i.e.\nseparate Lunch and Dinner menus) you can combine all menus into a single menu with [MenuSections](https://developers.google.com/actions-center/verticals/ordering/redirect/reference/menu-feeds/menus-feed#MenuSection-definition)\n(i.e. one menu with a section for Lunch and a section for dinner). The resulting menu would have\nthe following structure:\n\n- Menu\n - Lunch section\n - Soups\n - Soup 1\n - Soup 2\n - Sandwiches\n - Sandwich 1\n - Sandwich 2\n - Dinner section\n - Starters\n - Starter 1\n - Starter 2\n - Mains\n - Main dish 1\n - Main dish 2\n\nSharing menus across restaurants\n--------------------------------\n\n\nA single menu can be shared across multiple restaurants by including all restaurants in the\nmenu's `merchant_ids` list. Note that this list accepts entity ids for partners using\nthe [Entity](/actions-center/verticals/ordering/redirect/reference/feeds/entity-feed)\nfeed.\n\nBest Practices\n--------------\n\nThe following are best practices to follow when developing menu feeds.\n\n- Associate only one [menu](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#Menu-definition) to a restaurant. **Note:** The Menu section on a merchant's Google Business Profile does not differentiate between pickup and delivery menus. We recommend listing the menu information that most closely aligns with the merchant's in-store menu.\n- Provide the preferred language as the first language in the [TextField](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#TextField-definition). If you are sending multiple [LocalizedText](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed-proto-bundle#Localized-text-definition) objects, the first object in the text list is displayed to users.\n- All [menu items](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#MenuItem-definition) must be added to [menu sections](/actions-center/verticals/reservations/e2e/add-ons/add-menus/menus-feed#MenuSection-definition). Don't add menu items directly to the menu object.\n- Provide content using utf-8 encoding. It is not necessary to escape non-ascii characters.\n- If you are launching in multiple regions, ensure you are using the correct currency codes and denominations in the units and nanos field - pay extra caution to the nanos field which is 10\\^-9 of a unit. Use Menu Visualizer in [Inventory Viewer](https://actionscenter.google.com/inventory/fo-epa) to confirm you have correctly set prices.\n- Providing users with visually rich, comprehensive, and fresh menus is key to providing a helpful and engaging user experience. Prices, descriptions, photos, and dietary information are all key elements in driving decision making and partners are encouraged to provide as much of this data as possible to provide an optimal user \\& merchant experience.\n\nDevelopment \\& Testing Tools\n----------------------------\n\n\nAfter menu feeds are [launched](/actions-center/verticals/reservations/e2e/add-ons/add-menus/onboarding-process#launch), your menu feed data will be eligible to surface on discovery experiences and may be\nvisible on the restaurant placesheet \"Menu\" tab. The menu tab is supported on Google\nSearch (mobile \\& desktop), and the experience will be expanding to additional surfaces including\nGoogle Maps. The rendered experience may differ depending on the surface.\n\n\n**Figure 3:** An example of how menu feed content is displayed on Business Profile on mobile \n\nTo ensure your menu is structured correctly use Menu Visualizer in [Inventory Viewer](https://actionscenter.google.com/inventory/fo-epa)\nto preview your menus.\n| **Note:** The menu from your feed may not appear for a restaurant if there are multiple menu providers for the restaurant.\n\n\nRestaurant menus can come from many sources, including from restaurants themselves via their\nGoogle Business Profile, food ordering and reservations partners, user photos of menus, and more.\nIf multiple sources are providing menus for the same restaurant, the merchant can [choose a preferred provider](https://support.google.com/business/answer/9455840?sjid=3456950423954086848-NA#zippy=%2Cselect-preferred-menu)\nin the Google Business Profile menu editor."]]