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"
]
}