Merchants Feed

Definitions

MerchantFeed Definition

 message 
  
 MerchantFeed 
  
 { 
  
 FeedMetadata 
  
 metadata 
  
 = 
  
 1 
 ; 
  
 repeated 
  
 Merchant 
  
 merchant 
  
 = 
  
 2 
 ; 
 } 

Merchant Definition

 // Info about a merchant that is on the aggregator's platform. 
 // A merchant feed should be a list of this message. 
 message 
  
 Merchant 
  
 { 
  
 // An opaque string generated by the partner that identifies a merchant. 
  
 // Must be unique across all merchants. 
  
 // Strongly recommended to only include URL-safe characters. 
  
 // This ID should be immutable. Changing or recycling them to represent the 
  
 // same entity may cause issues and outages. 
  
 // (required) 
  
 string 
  
 merchant_id 
  
 = 
  
 1 
 ; 
  
 // The name, telephone, url and geo are used to support matching partner 
  
 // inventory with merchants already present on Google Maps. This information 
  
 // will not be displayed. 
  
 // 
  
 // The name of the merchant. (required) 
  
 string 
  
 name 
  
 = 
  
 2 
 ; 
  
 // The contact telephone number of the merchant including its country and area 
  
 // codes, e.g. +14567891234. Highly recommended. (optional) 
  
 string 
  
 telephone 
  
 = 
  
 3 
 ; 
  
 // The url of the merchant's public website. Highly recommended. (optional) 
  
 string 
  
 url 
  
 = 
  
 4 
 ; 
  
 // The Geo info of the merchant, including latitude, longitude, and address. 
  
 // (required) 
  
 GeoCoordinates 
  
 geo 
  
 = 
  
 5 
 ; 
  
 // The category of the business in aggregator's platform. (required) 
  
 // You should categorize this business as you categorize it in your inventory. 
  
 // We will use your provided category as a parameter in trying to determine 
  
 // the best location match to the physical business. 
  
 string 
  
 category 
  
 = 
  
 6 
 ; 
  
 // The specific merchant's Terms and Conditions displayed to the user when a 
  
 // service is being booked through Reserve with Google. 
  
 // In addition to these the aggregator partner's Terms and Conditions are 
  
 // always displayed to the user and must not be provided here. (optional) 
  
 Terms 
  
 terms 
  
 = 
  
 13 
 ; 
  
 // An opaque string that identifies the consumer-facing brand to use when 
  
 // displaying partner attribution. This field allows partners with multiple 
  
 // consumer-facing brands to provide merchants for all brands within the same 
  
 // feed. 
  
 // 
  
 // A brand consists of consumer-facing properties like the name, logo, Terms 
  
 // of Service, and Privacy Policy. 
  
 // 
  
 // If there is only one consumer-facing partner brand, this field does not 
  
 // need to be set and can be ignored. 
  
 // 
  
 // If the partner... 
  
 // 
  
 //   Does not have multiple consumer-facing brands? 
  
 //     --> Ignore this field 
  
 // 
  
 //   Has Multiple Brands that are configured? 
  
 // 
  
 //       If this field is set 
  
 //         --> Associated consumer-facing brand attribution is used 
  
 // 
  
 //       If this field is unset or the empty string 
  
 //         --> Default consumer-facing brand attribution is used 
  
 // 
  
 // Careful Note: most partners do not need to set this field. If a partner 
  
 // wishes to use this field, they must contact us first to configure separate 
  
 // brands, including the default brand. 
  
 string 
  
 brand_id 
  
 = 
  
 14 
 ; 
  
 // Hints to help Google match a merchant to a place on Google Maps. 
  
 // Note: Typically, this field does not need to be set, as Google will match 
  
 // merchants to places on Google Maps using the information provided above. 
  
 // (optional) 
  
 MerchantMatchingHints 
  
 matching_hints 
  
 = 
  
 16 
 ; 
  
 // Definitions for any service attributes used to describe the Services for 
  
 // this Merchant. (optional) 
  
 repeated 
  
 ServiceAttribute 
  
 service_attribute 
  
 = 
  
 17 
 ; 
  
 // An action URL with associated language, list of countries restricted to, 
  
 // type, and optional platform that indicates which platform this action 
  
 // should be performed on. This action link is specifically for the merchant, 
  
 // please use the ActionLink in the service feed to link to a specific 
  
 // service. 
  
 repeated 
  
 ActionLink 
  
 action_link 
  
 = 
  
 20 
 ; 
  
 // The linkout template that specifies how Google should generate the 
  
 // partner's URL to reserve a table on their platform. 
  
 // 
  
 // Note that currently only the first one will be used if multiple are 
  
 // provided. 
  
 // 
  
 // The URI template has support for fields which will be populated based 
  
 // on the user's reservation selections, all required fields are needed to 
  
 // build a reservation URL successfully: 
  
 // * (required) party_size, int: The size of the party for which the user is 
  
 // requesting a reservation. 
  
 // * (required) selected_date_time, ISO 8601 datetime 
  
 // (https://en.wikipedia.org/wiki/ISO_8601): The time the user is requesting a 
  
 // reservation for. 
  
 // * (optional) merchant_id, string: The ID of the Merchant the user is 
  
 // requesting a reservation with, not needed if template already includes a 
  
 // merchant identifier. 
  
 // * (optional) room_id, string: The id of the room the user is requesting a 
  
 // reservation for. 
  
 repeated 
  
 LinkoutTemplate 
  
 reservation_linkout_template 
  
 = 
  
 21 
 ; 
  
 // General advisements from a specific merchant for a user joining a waitlist 
  
 // through Reserve with Google. Individual text fields in the advisement 
  
 // should be limited to 100 bytes in length. 
  
 Advisement 
  
 waitlist_advisement 
  
 = 
  
 22 
 ; 
  
 // Economic Operator information associated to this specific merchant, if 
  
 // applicable for an end to end payments integration. 
  
 // For further info, refer to: 
  
 // https://developers.google.com/actions-center/verticals/reservations/e2e/partner-portal/testing/regulatory-requirements#economic-operator 
  
 // 
  
 // (optional) 
  
 EconomicOperator 
  
 economic_operator 
  
 = 
  
 23 
 ; 
 } 

GeoCoordinates Definition

 // The Geo data of a location, including latitude, longitude, and address. 
 // At least one of [lat/lng or address] should be provided (or both). 
 message 
  
 GeoCoordinates 
  
 { 
  
 // [-90, +90] degrees (inclusive). (optional) 
  
 double 
  
 latitude 
  
 = 
  
 1 
 ; 
  
 // [-180, +180] degrees (inclusive). (optional) 
  
 double 
  
 longitude 
  
 = 
  
 2 
 ; 
  
 // Address for a location, could either be structured or unstructured. 
  
 oneof 
  
 addresses 
  
 { 
  
 // Postal address of the location, preferred. 
  
 PostalAddress 
  
 address 
  
 = 
  
 3 
 ; 
  
 // An unstructured address could also be provided as a fallback. 
  
 // E.g. "1600 amphitheatre parkway mountain view, ca 94043" 
  
 string 
  
 unstructured_address 
  
 = 
  
 4 
 ; 
  
 } 
 } 

PostalAddress Definition

 // The postal address for a merchant. 
 message 
  
 PostalAddress 
  
 { 
  
 // The country, using ISO 3166-1 alpha-2 country code, e.g. "US" (required) 
  
 string 
  
 country 
  
 = 
  
 1 
 ; 
  
 // The locality/city, e.g. "Mountain View". (required) 
  
 string 
  
 locality 
  
 = 
  
 2 
 ; 
  
 // The region/state/province, e.g. "CA". This field is only required in 
  
 // countries where region is commonly a part of the address. (optional) 
  
 string 
  
 region 
  
 = 
  
 3 
 ; 
  
 // The postal code, e.g. "94043". (required) 
  
 string 
  
 postal_code 
  
 = 
  
 4 
 ; 
  
 // The street address, e.g. "1600 Amphitheatre Pkwy". (required) 
  
 string 
  
 street_address 
  
 = 
  
 5 
 ; 
 } 

TaxRate Definition

 // A tax rate applied when charging the user for a service, and which can be set 
 // on either a per merchant, or per service basis. 
 message 
  
 TaxRate 
  
 { 
  
 // A tax rate in millionths of one percent, effectively giving 6 decimals of 
  
 // precision. For example, if the tax rate is 7.253%, this field should be set 
  
 // to 7253000. 
  
 // 
  
 // If this field is left unset or set to 0, the total price charged to a user 
  
 // for any service provided by this merchant is the exact price specified by 
  
 // Service.price. The service price is assumed to be exempt from or already 
  
 // inclusive of applicable taxes. Taxes will not be shown to the user as a 
  
 // separate line item. 
  
 // 
  
 // If this field is set to any nonzero value, the total price charged to a 
  
 // user for any service provided by this merchant will include the service 
  
 // price plus the tax assessed using the tax rate provided here. Fractions of 
  
 // the smallest currency unit (for example, fractions of one cent) will be 
  
 // rounded using nearest even rounding. Taxes will be shown to the user as a 
  
 // separate line item. (required) 
  
 int32 
  
 micro_percent 
  
 = 
  
 1 
 ; 
 } 

PaymentRestrictions Definition

 // Restrictions to the payment methods this merchant accepts. 
 message 
  
 PaymentRestrictions 
  
 { 
  
 // Restrictions to the credit cards this merchant accepts. We assume all 
  
 // credit cards are accepted if this field is not set. 
  
 // Note that the list of cards supported by CreditCardType will grow over 
  
 // time, meaning that leaving this empty subjects a configuration to future 
  
 // changes. (optional) 
  
 CreditCardRestrictions 
  
 credit_card_restrictions 
  
 = 
  
 1 
 ; 
 } 

CreditCardRestrictions Definition

 // Restrictions to the credit card types this merchant accepts. 
 message 
  
 CreditCardRestrictions 
  
 { 
  
 // A credit card type. 
  
 enum 
  
 CreditCardType 
  
 { 
  
 // Unused. 
  
 CREDIT_CARD_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // A Visa credit card. 
  
 VISA 
  
 = 
  
 1 
 ; 
  
 // A Mastercard credit card. 
  
 MASTERCARD 
  
 = 
  
 2 
 ; 
  
 // An American Express credit card. 
  
 AMERICAN_EXPRESS 
  
 = 
  
 3 
 ; 
  
 // A Discover credit card. 
  
 DISCOVER 
  
 = 
  
 4 
 ; 
  
 // A JCB credit card. 
  
 JCB 
  
 = 
  
 5 
 ; 
  
 } 
  
 // A list of supported credit cards. No credit cards are supported if empty. 
  
 // (optional) 
  
 repeated 
  
 CreditCardType 
  
 credit_card_type 
  
 = 
  
 1 
 ; 
 } 

PaymentOption Definition

 // A payment option, which can be used to pay for services provided by a 
 // merchant. Payment options can be shared among multiple merchants 
 // (e.g. merchants belonging to the same chain). 
 message 
  
 PaymentOption 
  
 { 
  
 // An opaque string from an aggregator partner to identify a payment option. 
  
 // 
  
 // This id is global to the whole aggregator, and re-using a value across 
  
 // multiple merchants will allow a user to pay with the corresponding payment 
  
 // option across those merchants. 
  
 // 
  
 // When re-using an id across multiple merchants, updating any value for a 
  
 // payment option under one merchant will also update any other payment option 
  
 // with the same id, under a different merchant. As such, it's a best practice 
  
 // to have all payment options sharing the same id, always be updated to 
  
 // identical values, to avoid any possibility of nondeterministic behavior. 
  
 // 
  
 // Do NOT confuse it with the internal payment option id. (required) 
  
 string 
  
 payment_option_id 
  
 = 
  
 1 
 ; 
  
 // The name of the payment option. This can be user visible. (required) 
  
 string 
  
 name 
  
 = 
  
 2 
 ; 
  
 // A description of the payment option. This can be user visible. (optional) 
  
 string 
  
 description 
  
 = 
  
 3 
 ; 
  
 // The price of the payment option. (required) 
  
 Price 
  
 price 
  
 = 
  
 4 
 ; 
  
 // The tax rate for this payment option. If present this field overrides the 
  
 // tax_rate field present in the Merchant or Service. An empty message 
  
 // (i.e. tax_rate { }) will reset the applied tax rate to zero. (optional) 
  
 TaxRate 
  
 tax_rate 
  
 = 
  
 5 
 ; 
  
 // A payment option type. 
  
 enum 
  
 PaymentOptionType 
  
 { 
  
 // Unused. 
  
 PAYMENT_OPTION_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // Payment option can only be used once. 
  
 PAYMENT_OPTION_SINGLE_USE 
  
 = 
  
 1 
 ; 
  
 // Payment option can be used if its session count > 0. 
  
 PAYMENT_OPTION_MULTI_USE 
  
 = 
  
 2 
 ; 
  
 // Payment option can be used within its valid time range - session count 
  
 // is inapplicable. 
  
 PAYMENT_OPTION_UNLIMITED 
  
 = 
  
 3 
 ; 
  
 } 
  
 // The type of this payment option. Single-use for drop-ins, multi-use for 
  
 // packs, and unlimited for memberships. (required) 
  
 PaymentOptionType 
  
 payment_option_type 
  
 = 
  
 6 
 ; 
  
 // How many sessions this payment option can be used for. Valid only for 
  
 // multi-session / packs, where the value should be > 1. 
  
 // (required if payment_option_type is PAYMENT_OPTION_MULTI_USE) 
  
 int64 
  
 session_count 
  
 = 
  
 7 
 ; 
  
 // The payment option can be purchased within this interval. (optional) 
  
 TimeRange 
  
 purchase_interval 
  
 = 
  
 8 
 ; 
  
 // The payment option can be used within this interval (e.g. special price 
  
 // for January 2017). 
  
 // If present, this overrides valid_duration_sec and activation_type. 
  
 // (optional) 
  
 TimeRange 
  
 valid_interval 
  
 = 
  
 9 
 ; 
  
 // Duration of the payment option validity (e.g. 30 day membership). 
  
 // (optional) 
  
 int64 
  
 valid_duration_sec 
  
 = 
  
 10 
 ; 
  
 // Defines how the validity start date is determined. 
  
 enum 
  
 ActivationType 
  
 { 
  
 // Unused. 
  
 ACTIVATION_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // Validity starts at the time of purchase. 
  
 ACTIVATION_ON_PURCHASE 
  
 = 
  
 1 
 ; 
  
 // Validity starts when the payment option is used for the first time. 
  
 ACTIVATION_ON_FIRST_USE 
  
 = 
  
 2 
 ; 
  
 } 
  
 // Defines how the validity start date is determined for this payment option. 
  
 // (required) 
  
 ActivationType 
  
 activation_type 
  
 = 
  
 11 
 ; 
  
 // Restricts the users eligible to purchase this payment option. Can be used 
  
 // to restrict a promotional payment option to a subset of users. If not set, 
  
 // all users are eligible. (optional) 
  
 UserPurchaseRestriction 
  
 user_restriction 
  
 = 
  
 12 
 ; 
 } 

UserPurchaseRestriction Definition

 message 
  
 UserPurchaseRestriction 
  
 { 
  
 // A payment option that can only be purchased by users who have never 
  
 // purchased from the same merchant before. (required if new_to_payment_option 
  
 // is not set) 
  
 bool 
  
 new_to_merchant 
  
 = 
  
 1 
 ; 
  
 // A payment option that can only be purchased by users who have never 
  
 // purchased the same payment option before. (required if new_to_payment is 
  
 // not set) 
  
 bool 
  
 new_to_payment_option 
  
 = 
  
 2 
 ; 
 } 

TimeRange Definition

 // A closed-open time range, i.e. [begin_sec, end_sec) 
 message 
  
 TimeRange 
  
 { 
  
 // Seconds of UTC time since Unix epoch (required) 
  
 int64 
  
 begin_sec 
  
 = 
  
 1 
 ; 
  
 // Seconds of UTC time since Unix epoch (required) 
  
 int64 
  
 end_sec 
  
 = 
  
 2 
 ; 
 } 

TokenizationConfig Definition

 // A configuration for payment-processor tokenization, set up on a per-Merchant 
 // basis. 
 message 
  
 TokenizationConfig 
  
 { 
  
 // A tokenization configuration will typically have one 
  
 // tokenization_parameter whose key is "gateway" and whose value is the 
  
 // name of the processor. 
  
 // 
  
 // The rest of the parameters are dependent on the processor.  See 
  
 // documentation from Google Pay and your processor for further information. 
  
 // https://developers.google.com/pay/api/web/object-reference# \ 
 //   PaymentMethodTokenizationSpecification 
  
 // https://developers.google.com/pay/api/#participating-google-pay-processors 
  
 // 
  
 // Braintree example: 
  
 // tokenization_parameter { key: "gateway" value: "braintree" } 
  
 // tokenization_parameter { key: "braintree:apiVersion" value: "v1" } 
  
 // tokenization_parameter { key: "braintree:sdkVersion" value: "2.30.0" } 
  
 // tokenization_parameter { key: "braintree:merchantId" value: "abcdef" } 
  
 // tokenization_parameter { key: "braintree:clientKey" 
  
 //                          value: "production_xxx_yyy" } 
  
 // 
  
 // Stripe example: 
  
 // tokenization_parameter { key: "gateway" value: "stripe" } 
  
 // tokenization_parameter { key: "stripe:version" value: "2018-02-28" } 
  
 // tokenization_parameter { key: "stripe:publishableKey" value: "pk_1234" } 
  
 // 
  
 // Adyen example: 
  
 // tokenization_parameter { key: "gateway" value: "adyen" } 
  
 // tokenization_parameter { key: "gatewayMerchantId" value: "yourId" } 
  
 map<string 
 , 
  
 string 
>  
 tokenization_parameter 
  
 = 
  
 1 
 ; 
  
 // The following field controls how much billing information to include in the 
  
 // payment token. Verification of billing information is the responsibility of 
  
 // Google Pay upon entry of Form Of Payment (FOP). If the FOP is currently in 
  
 // Google Pay without the requested level of billing information, the user 
  
 // will not see their FOP as a choice, and they will have to enter the FOP and 
  
 // required information according to the current Google Pay UI. 
  
 // 
  
 // Some merchants like to keep the requested information minimal because 
  
 // requesting more information can lead to lower conversion rates. 
  
 // 
  
 // Note that they can also go to payments.google.com to enhance an FOP but 
  
 // most users will not know to do so. 
  
 // How much of the Billing Address to require of the user and include in the 
  
 // token. The enum values correspond to parameters in the Google Pay API (see 
  
 // https://developers.google.com/pay/api/web/reference/object\ 
 //  #BillingAddressParameters). 
  
 enum 
  
 BillingInformationFormat 
  
 { 
  
 BILLING_INFORMATION_FORMAT_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // name, country code, and postal code (GPay default setting). 
  
 MIN 
  
 = 
  
 1 
 ; 
  
 // name, street address, locality, region, country code, and postal code 
  
 FULL 
  
 = 
  
 2 
 ; 
  
 } 
  
 // Include in the payment token the user's billing information as entered into 
  
 // Google Pay with their FOP (see above). 
  
 BillingInformationFormat 
  
 billing_information_format 
  
 = 
  
 2 
 ; 
  
 // Name of the Merchant Of Record (MOR).  This user-visible name will be shown 
  
 // in 3DS2 challenges.  In some cases, this is the Merchant, in others this is 
  
 // the Aggregator. 
  
 string 
  
 merchant_of_record_name 
  
 = 
  
 3 
 ; 
  
 // Country where transaction will be processed, in ISO 3166-1 alpha-2 form. 
  
 string 
  
 payment_country_code 
  
 = 
  
 4 
 ; 
  
 // Per CardNetwork Processing information. 
  
 message 
  
 CardNetworkParameters 
  
 { 
  
 // The Card Network that these parameters are about 
  
 CreditCardRestrictions.CreditCardType 
  
 card_network 
  
 = 
  
 1 
 ; 
  
 // The Bank Identification Number of the acquiring bank used for processing 
  
 // of the card. 
  
 // 
  
 // If this value is not known to you, you should ask your acquirer or 
  
 // merchant processor representative. 
  
 string 
  
 acquirer_bin 
  
 = 
  
 2 
 ; 
  
 // The merchant identifier assigned by the acquirer to the merchant for use 
  
 // in transaction authorization (for Visa and American Express 
  
 // transactions). 
  
 // 
  
 // If this value is not known to you, you should ask the acquirer or 
  
 // merchant processor representative. 
  
 string 
  
 acquirer_merchant_id 
  
 = 
  
 3 
 ; 
  
 } 
  
 // Per-Card Network processing parameters. 
  
 // 
  
 // These are currently only required for PSD2 
  
 // (https://en.wikipedia.org/wiki/Payment_Services_Directive) 
  
 // processing when payment_country_code is a European country where PSD2 is in 
  
 // effect.  They are also only currently required for VISA and 
  
 // AMERICAN_EXPRESS. 
  
 repeated 
  
 CardNetworkParameters 
  
 card_network_parameters 
  
 = 
  
 5 
 ; 
  
 // Fields supported to authorize a card transaction. 
  
 // 
  
 // See the GPay documentation at 
  
 // https://developers.google.com/pay/api/web/reference/object#CardParameters 
  
 enum 
  
 AuthMethod 
  
 { 
  
 AUTH_METHOD_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // This authentication method is associated with payment cards stored on 
  
 // file with the user's Google Account. Returned payment data includes 
  
 // personal account number (PAN) with the expiration month and the 
  
 // expiration year. 
  
 PAN_ONLY 
  
 = 
  
 1 
 ; 
  
 // This authentication method is associated with cards stored as Android 
  
 // device tokens. Returned payment data includes a 3-D Secure (3DS) 
  
 // cryptogram generated on the device. 
  
 CRYPTOGRAM_3DS 
  
 = 
  
 2 
 ; 
  
 } 
  
 // Defines types of cardholder data that are accepted by the gateway. 
  
 // If not specified, no restrictions are applied. 
  
 // 
  
 // Note that partners who use commercial gateways should leave this 
  
 // empty unless their gateway provider has specified otherwise.  Restricting 
  
 // allowed_auth_methods is most useful in the scenario that a partner 
  
 // integrates with GPay as a gateway themselves. 
  
 repeated 
  
 AuthMethod 
  
 allowed_auth_methods 
  
 = 
  
 6 
 ; 
 } 

Terms Definition

 // A set of rules and guidelines that are displayed to the 
 // user in order to make a booking through Reserve with Google. 
 message 
  
 Terms 
  
 { 
  
 // The URL to the Terms and Conditions. (optional) 
  
 string 
  
 url 
  
 = 
  
 1 
 ; 
  
 // The text to be displayed to the user. 
  
 // Use localized_text below for new integrations. 
  
 string 
  
 text 
  
 = 
  
 2 
 ; 
  
 // The localized text to be displayed to the user. (required) 
  
 Text 
  
 localized_text 
  
 = 
  
 3 
 ; 
 } 

Text Definition

 // A possibly-localized text payload. Some Text fields may contain marked-up 
 // content. 
 message 
  
 Text 
  
 { 
  
 // Required. Text value in an unknown locale, which will be displayed if 
  
 // `localized_value` for the user locale is empty or missing. The locale for 
  
 // this value may depend on the partner or service provider, and it should not 
  
 // be assumed to be any specific language. 
  
 string 
  
 value 
  
 = 
  
 1 
 ; 
  
 // Per-locale text values. Required. 
  
 repeated 
  
 LocalizedString 
  
 localized_value 
  
 = 
  
 2 
 ; 
 } 

LocalizedString Definition

 // Instance of a string in one locale. 
 message 
  
 LocalizedString 
  
 { 
  
 // IETF BCP 47 language code, such as "en", "mas", "zh-Hant", "de-CH-1901". 
  
 // See http://www.w3.org/International/articles/language-tags/. 
  
 string 
  
 locale 
  
 = 
  
 1 
 ; 
  
 // Message in the locale above (UTF-8). 
  
 string 
  
 value 
  
 = 
  
 2 
 ; 
 } 

Advisement Definition

 // Advisements that are displayed to the user when booking through Reserve with 
 // Google. 
 message 
  
 Advisement 
  
 { 
  
 // Custom message to be displayed to the user when booking through 
  
 // Reserve with Google. 
  
 Text 
  
 text 
  
 = 
  
 1 
 ; 
 } 

EconomicOperator Definition

 // Economic Operator information for the Merchant. 
 message 
  
 EconomicOperator 
  
 { 
  
 // Name, address, telephone number and email address of the economic operator, 
  
 // defined as the manufacturer, authorized representative, importer, 
  
 // distributor, fulfillment service provider or any other natural or legal 
  
 // person subject to obligations related to the manufacture of products, 
  
 // making them available, or putting them into service. 
  
 // Freeform string representation of the economic_operator. This information 
  
 // may be formatted using " " and "\n". 
  
 Text 
  
 text 
  
 = 
  
 1 
 ; 
 } 

MerchantMatchingHints Definition

 // Hints used to help Google match a merchant to a place on Google Maps. 
 message 
  
 MerchantMatchingHints 
  
 { 
  
 // The Place ID for a place in the Google Places database and on Google Maps. 
  
 // See https://developers.google.com/places/place-id for more about Place IDs. 
  
 // If this is provided, Google will use it as a hint when matching, and 
  
 // prioritize the hint over other candidates. 
  
 string 
  
 place_id 
  
 = 
  
 1 
 ; 
 } 

ServiceAttribute Definition

 // Service attributes are partner-defined categories that describe the Services 
 // for a Merchant. For example, a bank may define an "Account Type" 
 // service attribute with possible values of "Personal" and "Business", while a 
 // hair salon may define a "Service Type" service attribute with possible 
 // values of "Haircut", "Color", and "Style". 
 message 
  
 ServiceAttribute 
  
 { 
  
 // An identifier that uniquely identifies this service attribute among others 
  
 // for the same merchant, e.g. "account-type". 
  
 string 
  
 attribute_id 
  
 = 
  
 1 
 ; 
  
 // A user-visible name for this attribute, e.g. "Account Type". 
  
 string 
  
 attribute_name 
  
 = 
  
 2 
 ; 
  
 // Represents a possible value for a particular service attribute. 
  
 message 
  
 Value 
  
 { 
  
 // An identifier that uniquely identifies this value among others for 
  
 // this service attribute, e.g. "personal". 
  
 string 
  
 value_id 
  
 = 
  
 1 
 ; 
  
 // A user-visible name for the value, e.g. "Personal". 
  
 string 
  
 value_name 
  
 = 
  
 2 
 ; 
  
 } 
  
 // All possible values for this service attribute. 
  
 repeated 
  
 Value 
  
 value 
  
 = 
  
 3 
 ; 
 } 
 // 
  
 An 
  
 action 
  
 URL 
  
 with 
  
 associated 
  
 language 
 , 
  
 list 
  
 of 
  
 countries 
  
 restricted 
  
 to 
 , 
  
 and 
 // 
  
 optional 
  
 platform 
  
 that 
  
 indicates 
  
 which 
  
 platform 
  
 this 
  
 action 
  
 should 
  
 be 
 // 
  
 performed 
  
 on 
 . 
 message 
  
 ActionLink 
  
 { 
  
 // 
  
 The 
  
 entry 
  
 point 
  
 URL 
  
 for 
  
 this 
  
 action 
  
 link 
 . 
  
 string 
  
 url 
  
 = 
  
 1 
 ; 
  
 // 
  
 The 
  
 BCP 
 - 
 47 
  
 language 
  
 tag 
  
 identifying 
  
 the 
  
 language 
  
 in 
  
 which 
  
 the 
  
 content 
  
 // 
  
 from 
  
 this 
  
 URI 
  
 is 
  
 available 
 . 
  
 string 
  
 language 
  
 = 
  
 2 
 ; 
  
 // 
  
 The 
  
 platform 
  
 that 
  
 this 
  
 action 
  
 should 
  
 be 
  
 performed 
  
 on 
 . 
  
 If 
  
 this 
  
 field 
  
 is 
  
 // 
  
 unset 
 , 
  
 ACTION_PLATFORM_WEB_APPLICATION 
  
 will 
  
 be 
  
 used 
  
 as 
  
 fallback 
 . 
  
 ActionPlatform 
  
 platform 
  
 = 
  
 4 
 ; 
  
 // 
  
 Predetermined 
  
 type 
  
 of 
  
 action 
  
 associated 
  
 with 
  
 an 
  
 action 
  
 link 
 . 
  
 enum 
  
 ActionLinkType 
  
 { 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 unspecified 
 . 
  
 ACTION_LINK_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 booking 
  
 an 
  
 appointment 
 . 
  
 ACTION_LINK_TYPE_BOOK_APPOINTMENT 
  
 = 
  
 1 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 booking 
  
 an 
  
 online 
  
 appointment 
 . 
  
 ACTION_LINK_TYPE_BOOK_ONLINE_APPOINTMENT 
  
 = 
  
 2 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 ordering 
  
 food 
  
 for 
  
 delivery 
  
 or 
  
 takeout 
  
 or 
  
 both 
 . 
  
 ACTION_LINK_TYPE_ORDER_FOOD 
  
 = 
  
 3 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 ordering 
  
 food 
  
 for 
  
 delivery 
 . 
  
 ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY 
  
 = 
  
 4 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 ordering 
  
 food 
  
 for 
  
 takeout 
 . 
  
 ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT 
  
 = 
  
 5 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 is 
  
 making 
  
 a 
  
 dining 
  
 reservation 
 . 
  
 ACTION_LINK_TYPE_MAKE_DINING_RESERVATION 
  
 = 
  
 6 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 type 
  
 allows 
  
 users 
  
 to 
  
 shop 
  
 from 
  
 the 
  
 given 
  
 merchant 
 . 
  
 It 
  
 // 
  
 could 
  
 either 
  
 be 
  
 delivery 
  
 or 
  
 pickup 
 . 
  
 ACTION_LINK_TYPE_SHOP_ONLINE 
  
 = 
  
 7 
 ; 
  
 } 
  
 // 
  
 Predetermined 
  
 type 
  
 of 
  
 action 
  
 associated 
  
 with 
  
 an 
  
 action 
  
 link 
 . 
  
 ActionLinkType 
  
 action_link_type 
  
 = 
  
 5 
 ; 
  
 // 
  
 Metadata 
  
 for 
  
 the 
  
 order 
  
 online 
  
 link 
 . 
  
 // 
  
 Supports 
  
 action 
  
 with 
  
 ActionLinkType 
  
 of 
  
 ACTION_LINK_TYPE_SHOP_ONLINE 
 . 
  
 OrderOnlineMetadata 
  
 order_online_metadata 
  
 = 
  
 6 
 ; 
  
 // 
  
 Metadata 
  
 for 
  
 Food 
  
 Ordering 
  
 links 
 . 
  
 // 
  
 Supports 
  
 action 
  
 type 
 : 
  
 // 
  
 * 
  
 `ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY` 
  
 // 
  
 * 
  
 `ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT` 
  
 // 
  
 Does 
  
 NOT 
  
 support 
  
 `ACTION_LINK_TYPE_ORDER_FOOD` 
  
 FoodOrderingMetadata 
  
 food_ordering_metadata 
  
 = 
  
 7 
  
 ; 
  
 // 
  
 Additional 
  
 information 
  
 about 
  
 action 
  
 link 
  
 which 
  
 is 
  
 unique 
  
 to 
  
 the 
  
 events 
  
 // 
  
 vertical 
 . 
  
 message 
  
 EventMetadata 
  
 { 
  
 // 
  
 Predetermined 
  
 event 
  
 surface 
  
 associated 
  
 with 
  
 an 
  
 action 
  
 link 
 . 
  
 This 
  
 is 
  
 only 
  
 // 
  
 used 
  
 for 
  
 Events 
  
 vertical 
 . 
  
 enum 
  
 Surface 
  
 { 
  
 // 
  
 The 
  
 surface 
  
 is 
  
 unspecified 
 . 
  
 SURFACE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 is 
  
 booking 
  
 a 
  
 event 
  
 ticket 
  
 in 
  
 Search 
 . 
  
 SURFACE_SEARCH 
  
 = 
  
 1 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 is 
  
 booking 
  
 a 
  
 event 
  
 ticket 
  
 in 
  
 YouTube 
 . 
  
 SURFACE_YOUTUBE 
  
 = 
  
 2 
 ; 
  
 // 
  
 The 
  
 action 
  
 link 
  
 is 
  
 clicking 
  
 on 
  
 an 
  
 Ad 
  
 for 
  
 the 
  
 event 
 . 
  
 SURFACE_ADS 
  
 = 
  
 3 
 ; 
  
 } 
  
 // 
  
 Predetermined 
  
 event 
  
 surface 
  
 associated 
  
 with 
  
 an 
  
 action 
  
 link 
 . 
  
 This 
  
 is 
  
 only 
  
 // 
  
 used 
  
 for 
  
 Events 
  
 vertical 
 . 
  
 Surface 
  
 surface 
  
 = 
  
 1 
 ; 
  
 } 
  
 EventMetadata 
  
 event_metadata 
  
 = 
  
 9 
 ; 
  
 reserved 
  
 8 
 ; 
 } 

ActionPlatform Definition

 // 
  
 The 
  
 platform 
  
 that 
  
 the 
  
 action 
  
 is 
  
 performed 
  
 on 
 . 
  
 Web 
  
 application 
  
 is 
  
 the 
  
 general 
 // 
  
 fallback 
 . 
  
 It 
  
 is 
  
 recommended 
  
 to 
  
 have 
  
 at 
  
 least 
  
 one 
  
 ActionLink 
  
 with 
 // 
  
 ACTION_PLATFORM_WEB_APPLICATION 
 . 
  
 Links 
  
 with 
  
 Android 
  
 and 
  
 iOS 
  
 as 
  
 platform 
  
 are 
 // 
  
 only 
  
 used 
  
 on 
  
 the 
  
 respective 
  
 system 
 . 
 enum 
  
 ActionPlatform 
  
 { 
  
 // 
  
 The 
  
 platform 
  
 is 
  
 unspecified 
 . 
  
 ACTION_PLATFORM_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // 
  
 The 
  
 action 
  
 platform 
  
 is 
  
 web 
  
 in 
  
 general 
 . 
  
 ACTION_PLATFORM_WEB_APPLICATION 
  
 = 
  
 1 
 ; 
  
 // 
  
 The 
  
 action 
  
 platform 
  
 is 
  
 web 
  
 on 
  
 mobile 
  
 devices 
 . 
  
 ACTION_PLATFORM_MOBILE_WEB 
  
 = 
  
 2 
 ; 
  
 // 
  
 The 
  
 action 
  
 platform 
  
 is 
  
 Android 
  
 OS 
 . 
  
 ACTION_PLATFORM_ANDROID 
  
 = 
  
 3 
 ; 
  
 // 
  
 The 
  
 action 
  
 platform 
  
 is 
  
 iOS 
 . 
  
 ACTION_PLATFORM_IOS 
  
 = 
  
 4 
 ; 
 } 
 // Metadata for an order online action link. 
 message 
  
 OrderOnlineMetadata 
  
 { 
  
 // Available fulfillment options for an order online action link. 
  
 repeated 
  
 FulfillmentOption 
  
 fulfillment_option 
  
 = 
  
 1 
 ; 
 } 

FulfillmentOption Definition

 // 
  
 The 
  
 fulfillment 
  
 option 
  
 for 
  
 an 
  
 order 
  
 online 
  
 action 
  
 link 
 . 
 message 
  
 FulfillmentOption 
  
 { 
  
 // 
  
 The 
  
 fulfillment 
  
 type 
  
 associated 
  
 with 
  
 an 
  
 action 
  
 link 
 . 
  
 enum 
  
 FulfillmentType 
  
 { 
  
 // 
  
 The 
  
 fulfillment 
  
 type 
  
 is 
  
 unspecified 
 . 
  
 FULFILLMENT_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // 
  
 The 
  
 fulfillment 
  
 type 
  
 is 
  
 delivery 
 . 
  
 FULFILLMENT_TYPE_DELIVERY 
  
 = 
  
 1 
 ; 
  
 // 
  
 The 
  
 fulfillment 
  
 type 
  
 is 
  
 pickup 
 . 
  
 FULFILLMENT_TYPE_PICKUP 
  
 = 
  
 2 
 ; 
  
 } 
  
 // 
  
 Required 
 . 
  
 The 
  
 fulfillment 
  
 type 
 . 
  
 FulfillmentType 
  
 fulfillment_type 
  
 = 
  
 1 
 ; 
  
 // 
  
 Day 
  
 level 
  
 availability 
 . 
  
 message 
  
 AvailableDay 
  
 { 
  
 // 
  
 Required 
 . 
  
 An 
  
 available 
  
 date 
  
 for 
  
 a 
  
 fulfillment 
  
 method 
 . 
  
 Assumed 
  
 to 
  
 be 
  
 in 
  
 // 
  
 merchant 
 's timezone. 
 google.type.Date fulfillment_date = 1; 
 // Required. Unix timestamp. The last time a user could order, and receive 
 // items by `fulfillment_date`. In other words, after last_ordering_time, 
 // fulfillment_date will no longer be shown as available. 
 // 
 // For example, if the fulfillment_date is 2020-08-10: 
 // - a last_ordering_time value of 2020-08-10 18:00 means that, in order to 
 // receive their order on 2020-08-10, a customer must make that order by 6pm 
 // that same day. 
 // - a last_ordering_time value of 2020-08-08 20:00 means that, in order to 
 // receive their order on 2020-08-10, a customer must make that order by 8pm 
 // two days prior. 
 google.protobuf.Timestamp last_ordering_time = 2; 
 } 
 // Required. A list of days on which there is availability for this 
 // fulfillment method (preferably at least 2). 
 repeated AvailableDay available_day = 2; 
 // No fee required for the fulfillment method associated with the action link. 
 message NoFee {} 
 // The minimum fee required for the fulfillment method associated with the 
 // action link. 
 message MinimumFee { 
 // Required. The base fee amount for the fulfillment method. 
 Price base_fee_amount = 1; 
 } 
 // The fixed fee required for the fulfillment method associated with the 
 // action link. 
 message FixedFee { 
 // Required. The amount of the fixed fee for the fulfillment method. 
 Price amount = 1; 
 } 
 // Fee details for the fulfillment method associated with the action link. 
 message FeeDetails { 
 // Fee model for the fulfillment method. 
 oneof fee_details { 
 // No fee for the fulfillment method. 
 NoFee no_fee = 1; 
 // The base fee associated with the fulfillment method. 
 MinimumFee base_fee = 2; 
 // The fixed fee associated with the fulfillment method. 
 FixedFee fixed_fee = 3; 
 } 
 } 
 // Required. Fee details for the fulfillment method. 
 FeeDetails fee_details = 3; 
 // Required. Minimum order for the fulfillment method associated with the 
 // action link. 
 Price minimum_order = 4; 
 } 
 // 
  
 Metadata 
  
 for 
  
 food 
  
 ordering 
  
 action 
  
 links 
 . 
 message 
  
 FoodOrderingMetadata 
  
 { 
  
 // 
  
 Details 
  
 of 
  
 fees 
  
 charged 
  
 to 
  
 the 
  
 user 
  
 on 
  
 top 
  
 of 
  
 the 
  
 item 
  
 total 
 . 
  
 // 
  
 Repeated 
  
 for 
  
 different 
  
 types 
  
 of 
  
 fees 
  
 like 
  
 service 
  
 fee 
 , 
  
 delivery 
  
 fee 
  
 etc 
 . 
  
 repeated 
  
 FeeDetails 
  
 fee_details 
  
 = 
  
 1 
 ; 
  
 // 
  
 Order 
  
 fulfillment 
  
 time 
  
 duration 
  
 from 
  
 order 
  
 confirmation 
 . 
  
 // 
  
 For 
  
 delivery 
  
 orders 
 , 
  
 time 
  
 duration 
  
 until 
  
 the 
  
 food 
  
 is 
  
 delivered 
 . 
  
 // 
  
 For 
  
 pickup 
  
 orders 
 , 
  
 time 
  
 duration 
  
 until 
  
 the 
  
 food 
  
 is 
  
 ready 
  
 for 
  
 pickup 
 . 
  
 oneof 
  
 fulfillment_duration_options 
  
 { 
  
 // 
  
 Fixed 
  
 duration 
 . 
  
 For 
  
 example 
 : 
  
 30 
  
 mins 
 . 
  
 google 
 . 
 protobuf 
 . 
 Duration 
  
 fulfillment_lead_time_duration 
  
 = 
  
 2 
  
 ; 
  
 // 
  
 A 
  
 range 
  
 of 
  
 duration 
 . 
  
 // 
  
 Examples 
 : 
  
 // 
  
 * 
  
 30 
  
 mins 
  
 to 
  
 45 
  
 mins 
  
 // 
  
 * 
  
 Greater 
  
 than 
  
 30 
  
 mins 
  
 // 
  
 * 
  
 Less 
  
 than 
  
 50 
  
 mins 
  
 DurationRange 
  
 fulfillment_lead_time_duration_range 
  
 = 
  
 4 
  
 ; 
  
 } 
  
 // 
  
 Details 
  
 on 
  
 advanced 
  
 ordering 
  
 support 
  
 also 
  
 known 
  
 as 
  
 order 
  
 ahead 
  
 where 
  
 user 
  
 // 
  
 can 
  
 place 
  
 an 
  
 order 
  
 for 
  
 fulfillment 
  
 at 
  
 a 
  
 later 
  
 time 
  
 than 
  
 right 
  
 now 
 . 
  
 AdvanceOrderDetails 
  
 advance_order_details 
  
 = 
  
 3 
 ; 
  
 // 
  
 Fee 
  
 details 
 . 
  
 message 
  
 FeeDetails 
  
 { 
  
 // 
  
 Fee 
  
 type 
 . 
  
 enum 
  
 FeeType 
  
 { 
  
 // 
  
 Fee 
  
 type 
  
 unspecified 
 . 
  
 FEE_TYPE_UNSPECIFIED 
  
 = 
  
 0 
 ; 
  
 // 
  
 For 
  
 delivery 
  
 fees 
 . 
  
 DELIVERY 
  
 = 
  
 1 
 ; 
  
 // 
  
 For 
  
 service 
  
 fees 
 . 
  
 SERVICE 
  
 = 
  
 2 
 ; 
  
 } 
  
 // 
  
 Fee 
  
 type 
 . 
  
 ( 
 required 
 ) 
  
 FeeType 
  
 type 
  
 = 
  
 1 
  
 ; 
  
 // 
  
 Fee 
  
 amount 
  
 either 
  
 in 
  
 unit 
  
 currency 
 , 
  
 a 
  
 percentage 
  
 of 
  
 the 
  
 cart 
  
 value 
 , 
  
 or 
  
 a 
  
 // 
  
 combination 
  
 of 
  
 both 
 . 
  
 ( 
 required 
 ) 
  
 FeeAmount 
  
 fee_amount 
  
 = 
  
 2 
  
 ; 
  
 // 
  
 `FeeAmount` 
  
 examples 
 : 
  
 // 
  
 * 
  
 Fixed 
  
 fee 
 : 
  
 USD 
  
 0 
  
 ( 
 no 
  
 fee 
 ), 
  
 USD 
  
 1.5 
  
 // 
  
 * 
  
 Range 
  
 of 
  
 fixed 
  
 fee 
 : 
  
 USD 
  
 1.0 
  
 ( 
 minimum 
 ), 
  
 USD 
  
 3.0 
  
 ( 
 maximum 
 ), 
  
 USD 
  
 5.0 
 - 
 6.0 
  
 // 
  
 * 
  
 Percentage 
  
 of 
  
 cart 
  
 size 
 : 
  
 15.5 
 % 
 , 
  
 10 
 %- 
 20 
 % 
 , 
  
 10 
 % 
  
 ( 
 minimum 
 ), 
  
 15 
 % 
  
 ( 
 maximum 
 ) 
  
 // 
  
 * 
  
 Compound 
  
 of 
  
 range 
  
 and 
  
 percentage 
 : 
  
 // 
  
 25.5 
 % 
 & 
 USD 
  
 2.5 
  
 ( 
 minimum 
 ), 
  
 25.5 
 % 
 & 
 USD 
  
 4.5 
  
 ( 
 maximum 
 ), 
  
 // 
  
 10 
 % 
 & 
 USD 
  
 1.5 
 - 
 2.5 
 , 
  
 10.5 
 %- 
 20 
 % 
 & 
 USD 
  
 2.5 
 - 
 3.5 
  
 message 
  
 FeeAmount 
  
 { 
  
 // 
  
 Options 
  
 to 
  
 specify 
  
 monetary 
  
 amount 
 . 
  
 oneof 
  
 amount_options 
  
 { 
  
 // 
  
 Fixed 
  
 amount 
 . 
  
 For 
  
 example 
  
 USD 
  
 3.5 
 . 
  
 google 
 . 
 type 
 . 
 Money 
  
 amount 
  
 = 
  
 1 
 ; 
  
 // 
  
 Range 
  
 of 
  
 amount 
 . 
  
 // 
  
 Upper 
  
 and 
 / 
 or 
  
 Lower 
  
 bounds 
  
 of 
  
 fee 
  
 range 
  
 must 
  
 be 
  
 positive 
 . 
  
 // 
  
 Examples 
 : 
  
 // 
  
 * 
  
 USD 
  
 3.5 
  
 to 
  
 USD 
  
 5.5 
  
 // 
  
 * 
  
 At 
  
 least 
  
 USD 
  
 3.5 
  
 // 
  
 * 
  
 At 
  
 most 
  
 USD 
  
 5.5 
  
 MoneyRange 
  
 amount_range 
  
 = 
  
 2 
  
 ; 
  
 // 
  
 Unknown 
  
 amount 
 . 
  
 bool 
  
 amount_unknown 
  
 = 
  
 4 
 ; 
  
 } 
  
 // 
  
 Fee 
  
 in 
  
 terms 
  
 of 
  
 a 
  
 percentage 
  
 of 
  
 the 
  
 cart 
  
 value 
 . 
  
 // 
  
 Supports 
  
 a 
  
 range 
  
 ( 
 bounded 
  
 and 
  
 unbounded 
 ) 
  
 or 
  
 a 
  
 fixed 
  
 percentage 
 . 
  
 // 
  
 Value 
  
 should 
  
 be 
  
 between 
  
 0 
  
 ( 
 exclusive 
 ) 
  
 and 
  
 100 
  
 ( 
 inclusive 
 ). 
  
 // 
  
 Examples 
 : 
  
 // 
  
 * 
  
 Fixed 
  
 5.5 
 % 
  
 // 
  
 * 
  
 At 
  
 least 
  
 5.5 
 % 
  
 // 
  
 * 
  
 At 
  
 most 
  
 5.5 
 % 
  
 // 
  
 * 
  
 4.5 
 % 
  
 to 
  
 5.5 
 % 
  
 QuantitativeValue 
  
 cart_percentage 
  
 = 
  
 3 
  
 ; 
  
 } 
  
 } 
  
 // 
  
 For 
  
 order 
  
 ahead 
  
 support 
 . 
  
 message 
  
 AdvanceOrderDetails 
  
 { 
  
 // 
  
 True 
  
 if 
  
 Advance 
  
 Orders 
 , 
  
 also 
  
 known 
  
 as 
  
 Order 
  
 Ahead 
 , 
  
 is 
  
 supported 
 . 
  
 // 
  
 ( 
 required 
 ) 
  
 bool 
  
 is_supported 
  
 = 
  
 1 
 ; 
  
 } 
 } 

DurationRange Definition

 // Wrapper for a range of duration that can be bounded or unbounded. 
 // At least one of min_duration and max_duration duration is required. 
 message 
  
 DurationRange 
  
 { 
  
 // Minimum duration. 
  
 google 
 . 
 protobuf 
 . 
 Duration 
  
 min_duration 
  
 = 
  
 1 
  
 ; 
  
 // Maximum duration. 
  
 google 
 . 
 protobuf 
 . 
 Duration 
  
 max_duration 
  
 = 
  
 2 
  
 ; 
 } 

MoneyRange Definition

 // Wrapper for a range of monetary amount that could be bounded or unbounded. 
 // At least one of min_amount and max_amount is required. 
 message 
  
 MoneyRange 
  
 { 
  
 // Minimum amount. 
  
 google 
 . 
 type 
 . 
 Money 
  
 min_amount 
  
 = 
  
 1 
  
 ; 
  
 // Maximum amount. 
  
 google 
 . 
 type 
 . 
 Money 
  
 max_amount 
  
 = 
  
 2 
 ; 
 } 

QuantitativeValue Definition

 // 
  
 Wrapper 
  
 for 
  
 a 
  
 numerical 
  
 value 
  
 that 
  
 could 
  
 be 
  
 a 
  
 range 
  
 or 
  
 a 
  
 fixed 
  
 value 
 . 
 // 
  
 `QuantitativeValue` 
  
 examples 
 : 
 // 
  
 * 
  
 Singular 
  
 value 
 : 
  
 `value: 10.5` 
 // 
  
 * 
  
 Bounded 
  
 range 
 : 
  
 `value_range {min_value: 5.5, max_value 10.5}` 
 // 
  
 * 
  
 Lower 
  
 bound 
 : 
  
 `value_range {min_value: 5.5}` 
 // 
  
 * 
  
 Upper 
  
 bound 
 : 
  
 `value_range {max_value: 10.5}` 
 message 
  
 QuantitativeValue 
  
 { 
  
 // 
  
 Range 
  
 of 
  
 values 
  
 such 
  
 that 
  
 `min_value` 
 < 
 `max_value` 
 . 
  
 // 
  
 Requires 
  
 at 
  
 least 
  
 one 
  
 of 
  
 `min_value` 
  
 and 
  
 `max_value` 
 . 
  
 message 
  
 RangeValue 
  
 { 
  
 // 
  
 Minimum 
  
 value 
 . 
  
 double 
  
 min_value 
  
 = 
  
 1 
  
 ; 
  
 // 
  
 Maximum 
  
 value 
 . 
  
 double 
  
 max_value 
  
 = 
  
 2 
  
 ; 
  
 } 
  
 // 
  
 ( 
 required 
 ) 
  
 oneof 
  
 value_options 
  
 { 
  
 option 
  
 ( 
 validator 
 . 
 one_of 
 ) 
  
 = 
  
 { 
  
 // 
  
 A 
  
 singular 
  
 value 
 . 
  
 For 
  
 example 
 : 
  
 5.6 
  
 double 
  
 value 
  
 = 
  
 1 
 ; 
  
 // 
  
 A 
  
 range 
  
 of 
  
 values 
  
 that 
  
 could 
  
 also 
  
 be 
  
 open 
  
 ended 
  
 or 
  
 bounded 
 . 
  
 // 
  
 Examples 
 : 
  
 // 
  
 * 
  
 At 
  
 least 
  
 5.5 
  
 // 
  
 * 
  
 At 
  
 most 
  
 5.5 
  
 // 
  
 * 
  
 5.5 
  
 to 
  
 6.5 
  
 RangeValue 
  
 value_range 
  
 = 
  
 2 
  
 ; 
  
 } 
 } 

Merchant Feed samples

Dining

  { 
  
 "metadata" 
 : 
  
 { 
  
 "processing_instruction" 
 : 
  
 "PROCESS_AS_COMPLETE" 
 , 
  
 "shard_number" 
 : 
  
 0 
 , 
  
 "total_shards" 
 : 
  
 1 
 , 
  
 "nonce" 
 : 
  
 "11203880" 
 , 
  
 "generation_timestamp" 
 : 
  
 1524606581 
  
 }, 
  
 "merchant" 
 : 
  
 [ 
  
 { 
  
 "category" 
 : 
  
 "restaurant" 
 , 
  
 "merchant_id" 
 : 
  
 "dining-1" 
 , 
  
 "name" 
 : 
  
 "Dining Eats" 
 , 
  
 "url" 
 : 
  
 "www.dining1publicsite.com" 
 , 
  
 "telephone" 
 : 
  
 "+1 123-456-7890" 
 , 
  
 "geo" 
 : 
  
 { 
  
 "latitude" 
 : 
  
 37.422113 
 , 
  
 "longitude" 
 : 
  
 -122.084041 
 , 
  
 "address" 
 : 
  
 { 
  
 "locality" 
 : 
  
 "Mountain View" 
 , 
  
 "country" 
 : 
  
 "US" 
 , 
  
 "region" 
 : 
  
 "CA" 
 , 
  
 "street_address" 
 : 
  
 "1600 Amphitheatre Pkwy" 
 , 
  
 "postal_code" 
 : 
  
 "94043" 
  
 } 
  
 } 
  
 }, 
  
 { 
  
 "category" 
 : 
  
 "restaurant" 
 , 
  
 "merchant_id" 
 : 
  
 "dining-2" 
 , 
  
 "name" 
 : 
  
 "Burger Heaven" 
 , 
  
 "url" 
 : 
  
 "www.dining2publicsite.com" 
 , 
  
 "telephone" 
 : 
  
 "+1 123-456-12345" 
 , 
  
 "geo" 
 : 
  
 { 
  
 "latitude" 
 : 
  
 37.422113 
 , 
  
 "longitude" 
 : 
  
 -122.084041 
 , 
  
 "address" 
 : 
  
 { 
  
 "locality" 
 : 
  
 "San Francisco" 
 , 
  
 "country" 
 : 
  
 "US" 
 , 
  
 "region" 
 : 
  
 "CA" 
 , 
  
 "street_address" 
 : 
  
 "345 Spear St" 
 , 
  
 "postal_code" 
 : 
  
 "94105" 
  
 } 
  
 } 
  
 } 
  
 ] 
 } 
 

Shopping

  { 
  
 "metadata" 
 : 
  
 { 
  
 "processing_instruction" 
 : 
  
 "PROCESS_AS_COMPLETE" 
 , 
  
 "shard_number" 
 : 
  
 0 
 , 
  
 "total_shards" 
 : 
  
 1 
 , 
  
 "nonce" 
 : 
  
 "11204000" 
 , 
  
 "generation_timestamp" 
 : 
  
 1524606581 
  
 }, 
  
 "merchant" 
 : 
  
 [ 
  
 { 
  
 "category" 
 : 
  
 "apparel" 
 , 
  
 "merchant_id" 
 : 
  
 "apparel-brand-store-1" 
 , 
  
 "name" 
 : 
  
 "Apparel Brand" 
 , 
  
 "url" 
 : 
  
 "www.apparel-brand-example.com" 
 , 
  
 "telephone" 
 : 
  
 "+1 123-456-7890" 
 , 
  
 "geo" 
 : 
  
 { 
  
 "latitude" 
 : 
  
 37.422113 
 , 
  
 "longitude" 
 : 
  
 -122.084041 
 , 
  
 "address" 
 : 
  
 { 
  
 "locality" 
 : 
  
 "Mountain View" 
 , 
  
 "country" 
 : 
  
 "US" 
 , 
  
 "region" 
 : 
  
 "CA" 
 , 
  
 "street_address" 
 : 
  
 "1600 Amphitheatre Pkwy" 
 , 
  
 "postal_code" 
 : 
  
 "94043" 
  
 } 
  
 } 
  
 }, 
  
 { 
  
 "category" 
 : 
  
 "footwear" 
 , 
  
 "merchant_id" 
 : 
  
 "footwear-brand-store-1" 
 , 
  
 "name" 
 : 
  
 "Footwear Brand" 
 , 
  
 "url" 
 : 
  
 "www.footwear-brand-example.com" 
 , 
  
 "telephone" 
 : 
  
 "+1 123-456-1111" 
 , 
  
 "geo" 
 : 
  
 { 
  
 "latitude" 
 : 
  
 37.422113 
 , 
  
 "longitude" 
 : 
  
 -122.084041 
 , 
  
 "address" 
 : 
  
 { 
  
 "locality" 
 : 
  
 "San Francisco" 
 , 
  
 "country" 
 : 
  
 "US" 
 , 
  
 "region" 
 : 
  
 "CA" 
 , 
  
 "street_address" 
 : 
  
 "345 Spear St" 
 , 
  
 "postal_code" 
 : 
  
 "94105" 
  
 } 
  
 } 
  
 } 
  
 ] 
 } 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: