AI-generated Key Takeaways
- 
          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"
  ]
}