Page Summary
-
Action data files should follow the specified action feed spec and use unique filenames with timestamps.
-
The fileset descriptor should have the
namefield set toreservewithgoogle.action.v2and also use unique filenames with timestamps. -
Feeds should be uploaded daily as full refreshes to the generic SFTP server, with details found in the Partner Portal.
-
You can check the feed ingestion status in the Feeds > History section of the Partner Portal.
-
The action feed is defined using Protobuf format, but uploading in JSON format is recommended.
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
namefield 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" ] }

