Step 2: Feeds

First you need to create your feeds, then Google evaluates them.

Create feeds

  1. Generate your feed(s). You transmit most of your inventory data to Google by feeds. To get started, create your Merchant feed, Service feed and Availability feed

    Events Feeds - Required and Recommended fields

    Merchant feed

    Merchant fields Description Requirement
    merchant_id Unique identifier for the merchant. Required
    name Name of the merchant (venue). Limited to 150 characters. Required
    geo.address Structured address coordinates of the merchant (venue) following this format. If you are unable to provide this format please provide geo.unstructured_address instead as a single string. Structured address is recommended over unstructured address. Required
    geo.latitude Geo coordinate (latitude) of the merchant (venue). Optional
    geo.longitude Geo coordinate (longitude) of the merchant (venue). Optional
    telephone Telephone of the merchant (venue). Optional
    category Place type of the merchant (venue). This should match the Google Business Profile category for the venue. Optional
    url URL of the merchant (venue). Optional

    Service feed

    Service fields Description Requirement
    service_id Unique identifier for the event. Required
    merchant_id Unique identifier for the venue. Required
    localized_service_name Name of event. Limited to 150 characters. Required
    localized_description Description of the event. Limited to 16,000 characters. May contain HTML, but only the following tags are supported: h1-h5, ul, ol, li, strong, italic, em, p, br. Recommended
    action_link Localized URL that references the partner's ticket page. May be the same as ticketing_vertical_specific_data.event_url. Required
    related_media Images of the event. Please adhere to these guidelines. Strongly recommended
    type Set to: SERVICE_TYPE_EVENT_TICKET. Required
    ticket_type.ticket_type_id Unique ID within a service that differentiates between different ticket types of the same service.

    Note: Currently, our system only supports displaying 1 ticket per service. If multiple ticket_type are provided, our system will display the cheapest. Only provide ticket types that are available to all users (general ticket for adult) and don't provide discount only limited to some users (like child discount).
    Required
    ticket_type.inventory_type Differentiates between different ticket types: INVENTORY_TYPE_PRIMARY, INVENTORY_TYPE_VERIFIED_RESALE, INVENTORY_TYPE_RESALE or INVENTORY_TYPE_AGGREGATOR. Required
    ticket_type.price The price of a single ticket of this type, exclusive of any taxes or fees (taxes/fees must be populated in per_ticket_fee, if price is provided). This should be the minimum general admission ticket for the service inventory type. Conditionally required
    ticket_type.per_ticket_fee.service_charge Service charge for purchasing this ticket. This field is required if the price field is set (even if value is 0). Conditionally required
    ticket_type.per_ticket_fee.facility_fee Additional fee for purchasing this ticket. This field is required if the price field is set (even if value is 0). Conditionally required
    ticket_type.per_ticket_fee.taxes Taxes for purchasing this ticket. This field is required if the price field is set (even if value is 0). Conditionally required
    ticket_type.localized_short_description Description of this ticket, if any. The field can be supplied in multiple locales. Limited to 16,000 characters. Required
    ticketing_vertical_specific_data.entity.id Unique identifier of the entity in the partner's database. If you don't store a unique ID, you can fill this with the musicbrainz ID (if relevant). Required
    ticketing_vertical_specific_data.event_category Category of event; for music events this should be EVENT_CATEGORY_CONCERT. If unsure, use EVENT_CATEGORY_UNSPECIFIED. Required
    ticketing_vertical_specific_data.event_url Canonical base URL linking to the page of the even—that is, no params attached—to send users to for purchasing tickets.This can be the same as the action_link. Required
    ticketing_vertical_specific_data.brand_name Localized brand name. By default, your brand name will be the same as the name of your partner portal account. If you want to change your name or have a different brand name for different events or have a different brand name per locale, use this field. You must also contact your Google POC to turn on this feature. Optional
    ticketing_vertical_specific_data.entity.name Name of the event performer or performing group. Limited to 150 characters. Required
    ticketing_vertical_specific_data.entity.url URL that references the partner's info page for the event performer, if available. Recommended
    ticketing_vertical_specific_data.entity.entity_type Type of entity. Possible values include ENTITY_TYPE_PERFORMER: when entity is music artist ENTITY_TYPE_CONCERT_TOUR: when entity is a tour. Required
    ticketing_vertical_specific_data.entity.entity_role Event participant's role for an event (e.g. headliner or opener for music events). Possible values for concerts: ENTITY_ROLE_HEADLINER. Recommended
    ticketing_vertical_specific_data.entity.public_identification_data.musicbrainz_id 36-character public artist ID from "musicbrainz.org/doc/MusicBrainz_Identifier," this can be set only when entity.type is ENTITY_TYPE_PERFORMER. Recommended
    ticketing_vertical_specific_data.entity.public_identification_data.relevant_url Public URL dedicated to only the event participant (e.g. a website, Wikipedia, or IMDb page). Recommended

    Availability feed

    Availability fields Description Requirement
    service_id Unique identifier for the associated Service. Required
    merchant_id Unique identifier for the associated Merchant. Required
    start_sec Start time of the event. Required
    duration_sec Duration of the event. Used to calculate the datetime of the end of the event. Required
    spots_open Total number of tickets available for purchase for the event. When an event is sold out, keep the inventory in the feed until the off-sale date, but set spots_open to 0. Required
    spots_total Total number of tickets for the event. Must be >= spots_open. Required
    scheduling_rule_overrides.last_bookable_sec Last second tickets are available for purchase. NULL is allowed if tickets are available until the event start_sec. Optional
    scheduling_rule_overrides.first_bookable_sec The first second (epoch) from which the tickets are available for purchase. Required

    Include feed metadata in each of your feeds that instructs Google on how to interpret the feed.

    The following is a feed metadata snippet:

    "metadata": {
     "generation_timestamp": "1467993600",
     "processing_instruction": "PROCESS_AS_COMPLETE",
     "total_shards": 1
    }
  2. Export your feeds. The feeds format is described with the protocol buffer 3 syntax, however you can reference the samples to see the JSON format. We recommend that you upload the feeds in JSON format.

  3. Upload the feeds to your SFTP Dropbox. To upload your feeds, use the SFTP dropbox information that Google provided to you and the private key that you created in Setup. The Google SFTP server is available at sftp://partnerupload.google.com on port 19321.

    Upload your files with unique names, such as a name that includes a timestamp. Unique names help with troubleshooting and allow queries for the feed status.

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

    • Size of feed files and shards:
      • Keep the feed file size less than 200MB (after compression). Compress them using gzip
      • If your file may reach more than 200MB (after compression), split them in multiple shards following the Sharding feed files tutorial. However, this integration alone is unlikely to reach the 200MB limit.
    • Frequency of complete updates:
      • A complete merchant feed is provided at least once a day.
      • A complete service feed is provided at least once a day.
      • A complete availability feed is provided once a day.

Google evaluates feeds

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

  • Feeds meet the specifications.
  • Feeds include all required fields.
  • Merchant data matches with Google Maps locations.