AI-generated Key Takeaways
-
Daily uploads of full-refresh action feeds to the generic SFTP dropbox are required.
-
Action feeds should adhere to the provided specification and be in JSON format, including a timestamp in the filename.
-
The fileset descriptor must have the name "reservewithgoogle.action.v2" and include the action data filename; it's also uploaded to the generic SFTP dropbox.
-
Partners can access feed ingestion status and SFTP dropbox information through the Partner Portal.
-
Action feeds can specify delivery, takeout, or both service types for food ordering actions, each with potentially unique deep links.
Create and upload action feeds
When creating and uploading action feeds, follow these instructions:
- Follow the spec described in the
action feed
for action data files. We recommend using unique action data file names for each upload.
Include a timestamp in the filename, for example,
action_1633621547.json
. - In the fileset descriptor, set the
name
field toreservewithgoogle.action.v2
. For an example of the descriptor file, refer to the JSON sample. We recommend using unique descriptor file names for each upload. Include a timestamp in the filename, for example,action_1633621547.filesetdesc.json
. The descriptor file must be uploaded to the generic SFTP server. - Upload feeds to the generic SFTP server daily as full refreshes.
- You can find SFTP server details in the Configuration > Feeds section of the Partner Portal.
- View feed ingestion status in the Feeds > History section of the Partner Portal.
Definitions
ActionFeed definition
message ActionFeed { repeated ActionDetail data = 1; }
ActionDetail definition
message ActionDetail { string entity_id = 2; string link_id = 3; // Deep link for action detail string url = 4; repeated Action actions = 1; }
Action definition
// Information about an Action which could be performed. message Action { // Deprecated fields not to be reused. reserved 1; oneof action_info { FoodOrderingInfo food_ordering_info = 3; } }
FoodOrderingInfo definition
message FoodOrderingInfo { // Service type for food ordering action. enum ServiceType { UNKNOWN = 0; DELIVERY = 1; TAKEOUT = 2; } ServiceType service_type = 1 ; }
Action Feed samples
Delivery only
Filename : actions_1697754089_0001.json
{ "data": [ { "actions": [{ "food_ordering_info": { "service_type": "DELIVERY" } }], "entity_id": "dining-1", "link_id": "delivery-dining-1", "url": "https://www.restaurant.com/delivery/dining-1" } ] }
Takeout only
Filename : actions_1697754089_0001.json
{ "data": [ { "actions": [{ "food_ordering_info": { "service_type": "TAKEOUT" } }], "entity_id": "dining-1", "link_id": "takeout-link-dining-1", "url": "https://www.restaurant.com/takeout/dining-1" } ] }
Delivery and takeout
Filename : actions_1697754089_0001.json
{ "data": [ { "actions": [ { "food_ordering_info": { "service_type": "DELIVERY" } }, { "food_ordering_info": { "service_type": "TAKEOUT" } } ], "entity_id": "dining-1", "link_id": "common-link-dining-1", "url": "https://www.restaurant.com/commonlink/dining-1" } ] }
Delivery+takeout different URL
Filename : actions_1697754089_0001.json
{ "data": [ { "actions": [ { "food_ordering_info": { "service_type": "TAKEOUT" } } ], "entity_id": "dining-1", "link_id": "takeout-dining-1", "url": "https://www.restaurant.com/takeout/dining-1" }, { "actions": [ { "food_ordering_info": { "service_type": "DELIVERY" } } ], "entity_id": "dining-1", "link_id": "delivery-dining-1", "url": "https://www.restaurant.com/delivery/dining-1" } ] }
Descriptor file
Filename : actions_1697754089.filesetdesc.json
{ "generation_timestamp": 1697754089, "name": "reservewithgoogle.action.v2", "data_file": [ "actions_1697754089_0001.json", "actions_1697754089_0002.json" ] }