Export feeds

Feeds contain information about the merchants that you work with, the services that they provide, and the availability of those services.

Create feeds

You transmit most of your inventory data to Google through feeds. To do this, create three types of feeds:

To start, check out the sample feeds by vertical:

In each feed, include metadata that instructs Google on how to interpret it.

The feeds format is described with the protocol buffer 3 syntax. You export the feed files in one of two ways:

  • Binary serialization of the protocol buffer data in PB3 format
  • Text serialization in JSON derived format

You can create a definition file for all three feeds by creating a new text file with a .proto extension, for example feeds.proto, and copy and pasting the content from the feeds proto bundle into it. This feeds.proto then can be used to generate programming libraries using a protoc compiler. Here are some examples of how to generate a library using the protoc compiler:

  • Java: protoc --java_out=. ./feeds.proto
  • Python: protoc --python_out=. ./feeds.proto
  • JavaScript: protoc --js_out=import_style=commonjs,binary:. ./feeds.proto

For information on how to use the protocol buffers to generate a binary protocol buffer feed, here is an example in Java.

Upload the feeds to your SFTP Dropbox

Upload your feeds to the sandbox environment. To do so, refer to the usernames within the Partner Portal feed configuration page. The Google SFTP server is available at sftp://partnerupload.google.com on port 19321.

We recommend that you give the files you upload unique names. For instance, it can be helpful to append each filename with a timestamp. This helps to troubleshoot issues and query for feed status.

File sizes and upload frequency

To determine the size of the feeds and frequency of delivery, use the following guidelines:

  • Suggested feed sharding:

    • Merchants feed: 1 shard
    • Services feed: 1 shard
    • Availability feed : less than 20 shards
  • Size of feed files and sharding:

    • Keep feed file size below 200 MB (after compression). Use multiple shards if needed.
    • Send a maximum of 1000 shards per feed.
    • Individual records sent in one shard don't need to be sent in the same shard in future feeds.
    • For better performance, split data evenly among the shards, to make all the shard files similar in size.
    • If necessary, use gzip to compress plain text JSON feeds. However, do so for each individual feed shard.
  • Frequency of complete updates:

    • Merchants feed: Sends a complete feed once per day.
    • Services feed: Sends a complete feed once per day.
    • Availability feed:

      • Sends a complete feed once per day.
      • The feed contains no restricts, so all inventory is updated.
      • [Fitness and Dining merchants] The complete feed covers the next 30 days.
      • [Beauty merchants] The complete feed covers the next 90 days.

Confirm that your data looks correct

Sign in to the Partner Portal. Toggle to the Sandbox environment to find the following pages in the Dashboards section.

Feeds
Shows the feed summary statistics and points out errors during feed upload.
Booking Server
Shows the success and failure rates for the booking server and latency statistics.
Real-Time Updates
Shows API success and failure rates.
Live Merchants
After the project goes live, this shows your merchant statistics.

To confirm that your data looks correct after your initial upload to the sandbox environment, check the Feeds page for any feed errors. Then check the Inventory Summary page for any data issues. Common issues include uploading merchants without any services or uploading services without any availability slots in the future.

The sandbox frontend, which emulates the live UI experience, shows how the data will look from the user's perspective. To access it, go to the Inventory Details page, find the table Enabled Merchants, and click on the desired Merchant URL.

If there is no data in the Enabled Merchants table, ensure that your merchants have services and future availability. This table is only updated every three hours, so wait a while for the feed to process if you just uploaded the feed.

If you can't access the sandbox frontend, confirm that you are signed in with an account that has been given access to the frontend. Also be sure that this is the only account you are signed in to. If you sign in with a different account and then use the Switch User feature to sign in to the approved Google account, you are still blocked from the sandbox frontend.

Upload your feeds to production

Once you are able to consistently upload complete, error-free feeds to the Sandbox environment you may begin uploading to the Production environment. At this point your integration will not be live. When you are to upload stable production data to the production environment email your Google contact to review.

Google evaluates feeds

Once you upload your feeds, Google processes and evaluates them for quality and completeness. We look at the following factors:

  1. Feeds match the feed specification.
  2. Feeds include all the required fields.
  3. The total number of merchants in feeds matches the number discussed with Google.
  4. At least one service is defined for each merchant.
  5. The total number of services in feeds matches the number discussed with Google.
  6. We check how many of the services have availability slots open for the next 1-90 days.
  7. We check how many of the merchants provided can be matched against features on Google Maps.