message ServiceFeed {
FeedMetadata metadata = 1;
repeated Service service = 2;
}
Service – Définition
//Thedefinitionofaserviceprovidedbyamerchant.messageService{//Anopaquestringfromanaggregatorpartnerwhichuniquelyidentifiesa//merchant.(required)stringmerchant_id=1;//Anopaquestringfromanaggregatorpartnerwhichuniquelyidentifiesthe//service.(required)stringservice_id=2;//Thenameoftheservice.Deprecated.Pleaseuselocalized_service_name.stringname=3[deprecated=true];//Thenameoftheservice,e.g."Men's haircut".Possiblyinseverallocales.//(required)Textlocalized_service_name=26;//Thedescriptionoftheservice.//Deprecated.Pleaseuselocalized_description.stringdescription=4[deprecated=true];//Thedescriptionoftheproduct.Limitedformattingoptionsareallowedin//theHTMLformat.Supportedtags://*h1-h5//*ul,ol,li//*strong,italic,em//*p,br//Othertagsarenotsupportedandwillberemoved.CSS,tables,style//property,`a`linksarenotsupported.Imagesarenotallowed,usethe//related_mediafieldinstead.//Importantnotes://*Trynottouseothertagsexceptforthesupportedonesmentioned//above,becausethecontentswithinunsupportedtagswillbestripped,//andmayleadtoanundesirableuserexperience.//*Tryavoiddeepnestedstructureslikemorethan3differentheading//levelsornestedlists.Keepingthestructureflat,simple,and//straightforward,helpstocreateabetteruserexperience.//*Donotduplicateinfofromtheproduct_featuresfieldbelowinthe//descriptionasbothwouldnormallybeshownsidebyside.//Recommendedtonotexceedlengthof10000inanylanguage.Maxlength://16000.//Recommended.//(optional)Textlocalized_description=27;//Thepriceoftheservice.(optional,overriddenwhenpaymentoptionsor//tickettypespresent)Priceprice=5;//Describeshowthepriceisinterpretedanddisplayedtotheuser.Canbe//usedbyanyverticalexceptDiningandThingsToDotoconfiguredisplayof//theserviceprice.(optional)PriceInterpretationprice_interpretation=23;//Rulestobook/cancelanappointment.(optional)SchedulingRulesrules=6;//Enumtoindicatetheprepaymenttype.enumPrepaymentType{//BydefaultwewillassumethattheprepaymentisNOT_SUPPORTED.PREPAYMENT_TYPE_UNSPECIFIED=0;//Theuserhastopaythisserviceatthebookingtime.REQUIRED=1;//Theusercanchoosetopre-paythisserviceatthebookingtimeorlater,//butitisnotrequiredinordertobook.OPTIONAL=2;//Theprepaymentisnotsupportedforthisservice.NOT_SUPPORTED=3;}//Whetheraprepaymentisrequired,optionalornotsupported.(optional)PrepaymentTypeprepayment_type=8;//Specificinformationaroundwhenprepaymentiscompleted.messagePrepaymentTerms{//Enumtospecifywhenthechargewilloccurrelativetothepurchase//time.enumChargeTiming{CHARGE_TIMING_UNSPECIFIED=0;CHARGE_NOW=1;CHARGE_LATER=2;}ChargeTimingcharge_timing=1;}PrepaymentTermsprepayment_terms=34;//Theservice's tax rate. If present this field overrides any tax_rate set at // the merchant level. An empty message (i.e. tax_rate { }) will reset the // applied tax rate to zero. (optional) TaxRate tax_rate = 9; // A list of ids referencing the payment options which can be used to pay // for this service. The actual payment options are defined at the Merchant // level, and can also be shared among multiple Merchants. (optional) repeated string payment_option_id = 10; // Defines how a deposit may be charged to the user. Can be overridden at the // availability level. (optional) Deposit deposit = 11; // Defines a no show fee that may be charged to the user. Can be overridden // at the availability level. (optional) NoShowFee no_show_fee = 12; // Indicates whether the user must provide a credit card in order to book this // service. // This value can be overridden at the availability level. (optional) RequireCreditCard require_credit_card = 13; // Additional information which needs to be added if the service requires the // user to pay directly to the merchant. IMPORTANT NOTE: RwG would not be // involved in this transaction. (Optional. Required if virtual_session is // defined and prepayment_type is NOT set to REQUIRED). DirectMerchantPayment direct_merchant_payment = 36; // An action link related to this service. If action link exists, type (see // below) must be set in the Service. repeated ActionLink action_link = 14; enum ServiceType { SERVICE_TYPE_UNSPECIFIED = 0; // Service that provides dining reservation. SERVICE_TYPE_DINING_RESERVATION = 1; // Service that provides food ordering in general, could be either takeout // or delivery or both. SERVICE_TYPE_FOOD_ORDERING = 2; // Service that only provides food delivery. SERVICE_TYPE_FOOD_DELIVERY = 6; // Service that only provides food takeout. SERVICE_TYPE_FOOD_TAKEOUT = 7; // Services that provide event based ticketing (e.g. concerts, sporting // events, shows). Do not use for Reserve with Google integrations. SERVICE_TYPE_EVENT_TICKET = 3; SERVICE_TYPE_TRIP_TOUR = 4; // Service that provides appointments or classes. Recommended for (1) health // and fitness, (2) spa and beauty, and (3) financial consults and // evaluations services. Please see the supported service types: // https://developers.google.com/maps-booking/guides/end-to-end-integration/overview SERVICE_TYPE_APPOINTMENT = 5; // Service that provides appointment for an online class or session which // will be fully virtual. Must be set if enabling virtual service bookings. SERVICE_TYPE_ONLINE_APPOINTMENT = 8; // Service that allows users to shop from the given merchant. It could // either be delivery or pickup. SERVICE_TYPE_SHOPPING = 9; } // The predefined type of this service. (optional) ServiceType type = 15; // Types of tickets that can be booked/purchased for this service. Only // supported in order based booking API, see // https://developers.google.com/maps-booking/guides/partner-implementing-booking-server-1a // (optional) repeated TicketType ticket_type = 16; // Photos related to this service. Google will crawl these media to ensure // that they are displayed correctly to end-users. (optional) repeated RelatedMedia related_media = 17; // Service attribute values that apply to this service (optional). // Each Service may have zero or more values for each service attribute // defined in the corresponding Merchant. repeated ServiceAttributeValueId service_attribute_value_id = 18; // Rules related to joining the waitlist. Should be populated if the service // and merchant support waitlist functionality. Should not be populated // otherwise. WaitlistRules waitlist_rules = 19; // Additional information unique to the event ticketing vertical. (optional) TicketingVerticalSpecificData ticketing_vertical_specific_data = 22; // User rating for this service as an aggregate metric over all reviews. Rating rating = 30; // Additional information unique to home service vertical. (optional) HomeServiceData home_service_data = 31; // Information about virtual session. (Optional. Required if enabling // virtual services) VirtualSession virtual_session = 35; // Ranking hint for this service. Optional. ServiceRankingHint ranking_hint = 37; // A template specifying how Google should generate URLs to external site. // Used for Dining Reservations Payment Redirect Partners only. UriTemplate uri_template = 38;}
Price – Définition
// The price of a service or a fee.messagePrice{// The price in micro-units of the currency.// For example: 1.95 USD is 1950000 in micro-units.// If your price contains fractions of the smallest currency unit, then it// will be rounded using nearest even rounding (e.g. 2.5 cents rounded// to 2 cents, 3.5 cents rounded to 4 cents, 0.5 cents rounded to 0 cents,// 2.51 cents rounded to 3 cents). (required)int64price_micros=1;// The currency of the price that is defined in ISO 4217. (required)stringcurrency_code=2;// An optional and opaque string that identifies the pricing option that is// associated with the extended price. (optional)stringpricing_option_tag=3;}
// Instance of a string in one locale.messageLocalizedString{// IETF BCP 47 language code, such as "en", "mas", "zh-Hant", "de-CH-1901".// See http://www.w3.org/International/articles/language-tags/.stringlocale=1;// Message in the locale above (UTF-8).stringvalue=2;}
// 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.messageTaxRate{// 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)int32micro_percent=1;}
ServiceIntakeFormField – Définition
//DefinesafieldthatisincludedinaServiceIntakeForm.messageServiceIntakeFormField{//Astringfromanaggregatorpartnerwhichuniquelyidentifiesaformfield.//Thisidshouldbethesameastheidinthecorrespondingformfield//answerandmustbeuniqueacrossboththeservicelevelandperticket//intakeforms.(required)stringid=5;//Enumtoindicatethetypeoffield.enumFieldType{//Fieldsofunspecifiedorunknowntypewillbeignored.FIELD_TYPE_UNSPECIFIED=0;//Aone-lineinputfieldfortext.SHORT_ANSWER=1;//Amulti-lineinputfieldfortext.PARAGRAPH=2;//Asetofradiobuttonsthatrequiresonechoicefrommanyoptions.MULTIPLE_CHOICE=3;//Oneormoreenumerateditemswithcheckboxes.CHECKBOXES=4;//Aselectionfromadropdown.DROPDOWN=5;//Ayes/nobutton.BOOLEAN=6;//Asearchwidgetthatsupportsfindingmatchedlocationgivenuserinput//fromprovidedlocationlist.LOCATION_SEARCH=7;}//Thetypeofthisfield.(required)FieldTypetype=1;//Thetextshowntotheuserforthisfield.Deprecated,pleaseuse//`localized_label`instead.stringlabel=2[deprecated=true];//Thetextshowntotheuserforthisfield.Thefieldcanbesuppliedin//multiplelocales.(required)Textlocalized_label=7;//SetifandonlyifthefieldtypeisLOCATION_SEARCH.Pleaseusethe//"location_id"inthe"location"fieldtospecifythelocationvalue.repeatedstringvalue=3;//SetifandonlyifthefieldtypeisMULTIPLE_CHOICE,CHECKBOXES,or//DROPDOWN.Usedtoenumeratepossiblechoices.repeatedTextchoice_text=8;//Indicateswhetherananswertothisfieldisrequiredbyauser.(optional)boolis_required=4;//Indicateswhetheracustomvalueisallowedinadditionaltopredefined//answers.ThisisonlyapplicablewhenthefieldtypeisLOCATION_SEARCH.//(optional)boolallow_custom_answer=9;//Additionaloptionsprovidedinadditiontotheprovidedvalues.Only//applicablewhenthefieldtypeisLOCATION_SEARCH.//E.g.inadditiontotheprovidedlocationlist,anotheravailableoption//canbe"I will contact supplier later".(optional)repeatedTextadditional_option=10;//Ifthisquestionshouldonlybeshownwhentheuserbookscertainticket//types,thisfieldshouldbesetasthesetofapplicabletickettypeids.//Leavethefieldemptyifthequestionisalwaysapplicable.//(optional)repeatedstringticket_type_restrict=6;//Thehinttextforinput,whichshowsupasatextplaceholder.Thisisonly//applicablewhenthefieldtypeisSHORT_ANSWERorPARAGRAPH.//(optional)Texthint=11;}
ServiceIntakeForm – Définition
// Defines an intake form that customizes the service provided by a merchant.messageServiceIntakeForm{// Fields that will be displayed to the user. (required)repeatedServiceIntakeFormFieldfield=1;// If true, this form will be shown to first time customers.// Deprecated. This functionality is not supported for intake forms.boolfirst_time_customers=2[deprecated=true];// If true, this form will be shown to repeat customers.// Deprecated. This functionality is not supported for intake forms.boolreturning_customers=3[deprecated=true];}
Deposit – Définition
// A deposit that the user may be charged or have a hold on their credit card// for.messageDeposit{// Deposit amount.Pricedeposit=1;// Minimum advance cancellation for the deposit.int64min_advance_cancellation_sec=2;// Defines how the deposit is determined from the availability.PriceTypedeposit_type=3;}
NoShowFee – Définition
// A fee that a user may be charged if they have made a booking but do not// show up.messageNoShowFee{// The amount the user may be charged if they do not show up for their// reservation.Pricefee=1;// Defines how the fee is determined from the availability.PriceTypefee_type=3;}
// Fees that must be paid for each ticket the user purchases. These fields// must add up to the total per ticket fee.messagePerTicketFee{// An extra charge assessed for a service.Priceservice_charge=1;// A fee that goes to the venue/facility.Pricefacility_fee=2;// Per ticket taxes.Pricetaxes=3;}
// Metadata for an order online action link.messageOrderOnlineMetadata{// Available fulfillment options for an order online action link.repeatedFulfillmentOptionfulfillment_option=1;}
Définition de FulfillmentOption
//Thefulfillmentoptionforanorderonlineactionlink.messageFulfillmentOption{//Thefulfillmenttypeassociatedwithanactionlink.enumFulfillmentType{//Thefulfillmenttypeisunspecified.FULFILLMENT_TYPE_UNSPECIFIED=0;//Thefulfillmenttypeisdelivery.FULFILLMENT_TYPE_DELIVERY=1;//Thefulfillmenttypeispickup.FULFILLMENT_TYPE_PICKUP=2;}//Required.Thefulfillmenttype.FulfillmentTypefulfillment_type=1;//Daylevelavailability.messageAvailableDay{//Required.Anavailabledateforafulfillmentmethod.Assumedtobein//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;}
TicketType – Définition
//TicketTypeisusedtodifferentiateamongtickets(whereaticketcanbea//spotonarafttrip,anadmissiontoamuseum,etc.)withdifferentprices//and/oravailabilitiesduetodifferentusertypesordifferentservice//attributes.//Onlyaddnewtickettypeswhenatleastoneofthefollowingdiffers://(1)short_description(2)option_description(3)pricemessageTicketType{//Theticketidisusedtodifferentiateamongdifferenttickettypesofthe//sameservice,andisonlyexpectedtobeuniquewithinaservice.stringticket_type_id=1;//Thiscanbeuservisible,e.g.,“adult”,"child",“veteran”,“RowJ”,etc.//Deprecated,use`localized_short_description`instead.stringshort_description=2[deprecated=true];//Thiscanbeuservisible,e.g.,“adult”,"child",“veteran”,“RowJ”,etc.//Thefieldcanbesuppliedinmultiplelocales.Textlocalized_short_description=6;//Thepriceofasingleticketofthistype.Priceprice=3;//Additionalfeesforpurchasingthisticket.(optional)PerTicketFeeper_ticket_fee=5;//Indicatesthepriceformatdisplayedonthelandingpage.////Thisfieldisignoredfornon-link-outinventory.////ThisfieldallowsGooglesurfacestoshowthesamepriceformatasusedby//thelandingpage.Consistentpriceformatsimproveconversionrateand//reduceconfusion.enumPriceDisplayType{//Thepricedisplaytypeisunspecified.Googlewilldeterminewhich//formattoshow.PRICE_DISPLAY_TYPE_UNSPECIFIED=0;//Thepriceshownonthelandingpageisthebaseprice.PRICE_DISPLAY_TYPE_BASE=1;//Thepriceshownonthelandingpageincludesallfeesandtaxes.PRICE_DISPLAY_TYPE_ALL_IN=2;}//Predeterminedpricedisplaytypeofasingleticketofthistype.PriceDisplayTypeprice_display_type=9;//Descriptionofanyadditionaloptionwhichthistickettyperepresents,if//any.Deprecated,use`localized_option_description`instead.stringoption_description=4[deprecated=true];//Descriptionofanyadditionaloptionwhichthistickettyperepresents,if//any.Thefieldcanbesuppliedinmultiplelocales.////Thisisusefulwhenthetickettyperepresentsmultipledimensions.////Example:anadmissionticketwithdifferenttypes'adult','child'and//languageasanadditionaloption,theexpectedTicketTypelistwouldbe://-{ticket_type_id:"ticket_type_1"//localized_short_description{value:"adult"}//localized_option_description{value:"english"}//}//-{ticket_type_id:"ticket_type_2"//localized_short_description{value:"adult"}//localized_option_description{value:"spanish"}//}//-{ticket_type_id:"ticket_type_3"//localized_short_description{value:"child"}//localized_option_description{value:"english"}//}//-{ticket_type_id:"ticket_type_4"//localized_short_description{value:"child"}//localized_option_description{value:"spanish"}//}////Optional,butifanytickettypewithintheservicehasthisfieldset,we//expectallothertickettypestohavethisfieldsetaswell(adefault//option_descriptioncouldbeused).E.g.//[{ticket_type_1,adult,english},{ticket_type_1,adult,''}]isnota//validlist.////OnlytwoHTMLformattingtagsaresupported:<em>and<br>.Theyare//intendedtobeusedforspecifyingoptionswithbothatitleand//detaileddescription,forexample:"<em>Premium Seating</em><br>This option // offers seating at the private boxes including fully cushioned seats, // private TVs, in-seat food and beverage service. These seats provide // picturesque views of the field."Textlocalized_option_description=7;//Predeterminedinventorytypeofasingleticketofthistype.enumInventoryType{//Theinventorytypeisunspecified.INVENTORY_TYPE_UNSPECIFIED=0;//Primaryinventory.INVENTORY_TYPE_PRIMARY=1;//Verifiedresaleinventory.INVENTORY_TYPE_VERIFIED_RESALE=2;//Resaleinventory.INVENTORY_TYPE_RESALE=3;//Aggregatorinventory.INVENTORY_TYPE_AGGREGATOR=4;}//Predeterminedinventorytypeofasingleticketofthistype.InventoryTypeinventory_type=8;}
Location – Définition
// Geographic information about a location.messageLocation{// 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 match the location to this place.// (optional)stringplace_id=1;// The location's name, telephone, url and geo are used to support matching// the location with places already present on Google Maps.//// This field is optional, but may be required in some contexts. For example,// a Service.location without a name will not be matched to a business entity,// even if they are located at the same address. (optional)stringname=2;// The public telephone number of the location including its country and area// codes, e.g. +14567891234. (optional)stringtelephone=3;// The url of the location's public website. (optional)stringurl=4;// The Geo info of the location, including latitude, longitude, and address.// (optional)GeoCoordinatesgeo=5;// Optional text to provide more precise description of the location, or// instructions assisting locating the place. E.g. "Front entrance of the// library", "meet at the intersect of Road A and Street B". (optional)Textdescription=6;// The type of the location. Note that this field may be required when// attached to a Service, see comments in Service.location for more details.// (optional)LocationTypelocation_type=7;// Unique reference of the location within the service. This id can be used to// refer to this location in other service fields. E.g. in the custom intake// form, a set of location ids can be used to specify pick up location// options. If set, this id should be unique within the same service.// Note this is only applicable for Service.// (optional)stringlocation_id=8;}
Rating – Définition
// Defines Rating for an entity.messageRating{// Average rating value (required when number_of_ratings > 0).// The value must be in the range of [1, 5] and can be omitted if and only if// the number_of_ratings is zero.doublevalue=1;// Number of ratings used in calculating the value (required).uint64number_of_ratings=2;}
//Cancellationpolicyforaservice.messageCancellationPolicy{//Definesasinglerefundcondition.Multiplerefundconditionscouldbe//usedtogethertodescribe"refund steps"asvariousdurationsbeforethe//servicestarttime.messageRefundCondition{//Durationinsecondsbeforethestarttime,untilwhenthecustomercan//receivearefundforpartoftheservice's cost specified in // `refund_percent`. // When set to 0 (default), the service can be cancelled at any time. int64 min_duration_before_start_time_sec = 1; // The percent that can be refunded, as long as the service booking is // cancelled at least `min_duration_before_start_time` before the service // start time, in the range of [0, 100]. When set to 0 (default), the // service is not refundable. When set to 100 this service is fully // refundable. uint32 refund_percent = 2; } // Zero or more refund conditions applicable to the policy. repeated RefundCondition refund_condition = 1;}
// Identifies a particular value of a service attribute to be applied to a// Service.messageServiceAttributeValueId{// ID of an attribute as defined in Merchant.service_attribute, e.g.// "service-type".stringattribute_id=1;// ID of the value for this attribute, e.g. "haircut". Must match a value_id// in the service attribute definition.stringvalue_id=2;}
WaitlistRules – Définition
// Rules related to joining the waitlist.messageWaitlistRules{// Required. Must be a positive integer for services providing waitlist// functionality. If the service or merchant does not provide waitlist// functionality, this must not be populated.int32min_party_size=1;// Required. Must be a positive integer for services providing waitlist// functionality. If the service or merchant does not provide waitlist// functionality, this must not be populated.int32max_party_size=2;// If true, the user will be able to send a free-form additional text request// when joining the waitlist for this service.boolsupports_additional_request=3;// Set options for parties larger than the set max_party_size.// Leave empty if larger parties should not be given alternative options// for joining a waitlist.repeatedUnsupportedPartySizeOptionabove_max_party_size_options=4;}
Définition de UnsupportedPartySizeOption
// Options for parties that are out of range.messageUnsupportedPartySizeOption{// Available options for parties that are out of range.oneofkind{// Party sizes that are out of range can call the business.// A predefined message will be displayed to the user.// Sample text to be displayed: "For parties larger than// {waitlist_rules.max_party_size} please call the restaurant at// {restaurant phone number in Google maps}." CallMerchant must be// set, but will be empty.CallMerchantcall_merchant=1;}}
Définition de CallMerchant
// Empty message to be used in UnsupportedPartySizeOption, setting this will// display a pre-defined message to users to call the business for a booking.messageCallMerchant{}
TicketingVerticalSpecificData – Définition>
//Additionalinformationuniquetotheeventticketingvertical.messageTicketingVerticalSpecificData{//Asubsetofeventcategoriesforwhichwecustomizetheproductexperience.//Note:notintendedtobeauniversalontologyofevents.enumEventCategory{//Notspecified.Donotuse.EVENT_CATEGORY_UNSPECIFIED=0;//Concerts.EVENT_CATEGORY_CONCERT=1;//Sportsevents.EVENT_CATEGORY_SPORTS=2;//Theatreevents.EVENT_CATEGORY_THEATRE=3;//Exhibits.EVENT_CATEGORY_EXHIBITS=4;//WorkshopsandClasses.EVENT_CATEGORY_WORKSHOPS_AND_CLASSES=5;}//Thecategoryoftheevent.Setonlywheneventfallsintooneofthe//predefinedcategories.(optional)EventCategoryevent_category=1;//TheURLoftheeventonthepartner's website. (optional)stringevent_url=2;//Identifiers,webpages,oranyotherpublicsourcesthatreferencean//entity.messagePublicIdentificationData{//PublicURLofanywebpagethatisdedicatedtoonlythetopic.Thiscould//includeofficialwebsites,discogs,socialmediaplatforms,wikipediaor//imdbpages,e.g.https://www.discogs.com/artist/1124645-Taylor-Swift,//https://www.wikidata.org/wiki/Q19320959,https://twitter.com/acmilan.//(optional)repeatedstringrelevant_url=1;//The36-charactermusicbrainzidentifieroftheartistorothermusic//entities,ifapplicable.See//https://musicbrainz.org/doc/MusicBrainz_Identifier.//(optional)stringmusicbrainz_id=2;}//Representsanentityrelatedtotheevent.messageEntity{//Uniqueidentifieroftheentityinthepartner's database. (optional)stringid=1;//Nameoftheentity.(required)stringname=2;//Urlofthewebpagethatunambiguouslydescribestheentity.//Thisisthewebpageonthepartner's website for the entity if any; for//otherpublicURLsoftheentity,userelevant_urlin//public_identification_data.(optional)stringurl=3;//Thetypeoftheentity.Note:notintendedtobeauniversalontology.enumEntityType{//Notspecified.Donotuse.ENTITY_TYPE_UNSPECIFIED=0;//Theentityrepresentstheartistorgroupperformingata//concertorashow.OnlyapplicablewheneventcategoryisCONCERTor//THEATRE.ENTITY_TYPE_PERFORMER=1;//Theentityrepresentsthesportsteamorplayerattheevent.Only//applicablewheneventcategoryisSPORTS.ENTITY_TYPE_PLAYER=2;//Theentityrepresentsthetourthatthiseventbelongsto.Only//applicablewheneventcategoryisCONCERT.ENTITY_TYPE_CONCERT_TOUR=3;//Theentityrepresentsasportstournamentthatthisevent//belongsto.OnlyapplicablewheneventcategoryisSPORTS.ENTITY_TYPE_SPORTS_SERIES=4;//Theentityrepresentsthetypeofplay(e.g.,musical,comedy,ballet,//etc.)performedattheevent.Onlyapplicablewheneventcategoryis//THEATRE.ENTITY_TYPE_PLAY=5;}//Thetypeoftheentity.(optional)EntityTypeentity_type=4;//Theroleoftheentityintheevent.enumEntityRole{//Notspecified.ENTITY_ROLE_UNSPECIFIED=0;//Theentityrepresentsaheadlinerorleadingperformerattheevent.ENTITY_ROLE_HEADLINER=1;//Theentityrepresentsasupportingperformerattheevent.ENTITY_ROLE_SUPPORTER=2;//Theentityrepresentsthehometeamatthe(sports)event.ENTITY_ROLE_HOME_TEAM=3;//Theentityrepresentstheawayteamatthe(sports)event.ENTITY_ROLE_AWAY_TEAM=4;}//Theroleoftheentityintheevent.(optional)EntityRoleentity_role=5;//Publicreferencesoftheentity.(optional)PublicIdentificationDatapublic_identification_data=6;}//Alistofentitiesrelatedtotheevent.(optional)repeatedEntityentity=3;//Thetypeoftheeventattendance.enumAttendanceMode{//Notspecified.ATTENDANCE_MODE_UNSPECIFIED=0;//Forvirtualevents.ONLINE=1;//Forphysicalevents.PHYSICAL=2;//Foreventsthatarebothphysicalandvirtual.PHYSICAL_ONLINE_MIXED=3;}//Required.Thetypeoftheeventattendance.AttendanceModeevent_attendance_mode=4;//Optional.URLwheretheeventcanbewatched.repeatedstringevent_virtual_location_url=5;//Optional.Organizerwhohoststheevent.Textevent_organizer=6;//Optional.URLoftheorganizerwhohoststheevent.stringevent_organizer_url=7;//Thetypeoftheorganizer.enumOrganizerType{//Notspecified.ORGANIZER_TYPE_UNSPECIFIED=0;//Fororganizerwhoisaperson.PERSON=1;//Fororganizerwhoisanorganization.ORGANIZATION=2;}//Optional.Thetypeoftheorganizer.OrganizerTypeevent_organizer_type=8;//URLofthepageswheretheeventinformationordescriptionscanbefound.//Requiredforvirtualeventsasvirtualeventsmaynothaveaticketing//pageandthisurlcontainsthebasicinformationoftheevent.repeatedstringevent_source_url=9;//Stateoftheevent.enumEventState{//Notspecified.EVENT_STATE_UNSPECIFIED=0;//Theeventisscheduled.SCHEDULED=1;//Theeventisrescheduled.RESCHEDULED=2;//Theeventiscancelled.CANCELLED=3;//Theeventispostponed.POSTPONED=4;}//Optional.Stateoftheevent.EventStateevent_state=10;//Thelocalizedbrandname.(optional)Textbrand_name=11;//Informationaboutthecreatoroftheevent.Onlyrelevantforplatforms//thatincludeuser-generatedcontentevents.messageEventCreator{//Nameoftheeventcreator.Nocharacterrestriction.stringname=1[features.field_presence=EXPLICIT];}//Informationaboutthecreatoroftheevent.EventCreatorevent_creator=12;}
//ContentfieldsspecifictoToursandActivities.Eachelementintherepeated//fieldshouldbeindependenttoallowseparaterendering(e.g.asabullet//point).////PopulatingToursAndActivitiesContentisstronglyrecommendedfortoursand//activities,butnotstrictlyrequired.Allfieldssupportbothplain-text//andHTML-liketextforbasicformatting.SupportedHTML-likeformattingtags:////Phrasetags:<br>,<strong>,<em>,<i>://Onlythefourtagsmentionedabovearesupported.<br>canbeusedto//breaklinesinparagraphs,and<strong>/<em>canbeusedtohighlight//importanttext.Anyotherphrasetagswillbeignored.////Allothertagsandcustomstylesarenotallowedandwillberemoved.Any//URLs,anchors,andlinkswillbestripped,andwillneverbedisplayedto//end-users.////Importantnotes://*Don't duplicate data already supplied in `highlights`, `exclusion` and// other, more specific, fields in service description.// * Avoid using other tags except for the supported ones mentioned above,// because the contents within unsupported tags will be stripped, and may// lead to an undesirable user experience.message ToursAndActivitiesContent { // The user-visible list of highlights. repeated Text highlights = 1; // The user-visible list of inclusions. repeated Text inclusions = 2; // The user-visible list of exclusions. repeated Text exclusions = 3; // The user-visible list of important notes, use for details such as age // restrictions or other conditions that make this service unsuitable. repeated Text must_know = 4;}
HomeServiceData – Définition
// Additional information required to be provided for home service vertical.messageHomeServiceData{// The high level category to which this home service belongs to. E.g.// plumber, electrician etc.stringcategory_type=1;// The job type under the category to which the given home service belongs to.// E.g. unclog_drain, install_faucet are the job types under plumber// category.stringjob_type=2;}
// Information about how the user can pay directly to the merchant instead of// pre-paying for the service via RwG.messageDirectMerchantPayment{// Users would be advised to pay only via the payment methods mentioned below.repeatedTextpayment_methods=1;}
Définition de ServiceRankingHint
// Ranking hints for a service.messageServiceRankingHint{// Arbitrary partner or merchant assigned rank for this service.//// Services with a higher score will be shown more prominently (e.g. shown// higher in lists). Note that other factors may also influence ranking, such// as price, availability, user history, etc.//// Optional. Must be non-negative if set.floatscore=1[features.field_presence=EXPLICIT];}
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/26 (UTC).
[null,null,["Dernière mise à jour le 2024/11/26 (UTC)."],[[["Service Feeds contain service metadata and are recommended to be uploaded in JSON format."],["Services are uniquely identified by `merchant_id` and `service_id`, and various fields define their pricing, booking policies, payment methods, and other attributes."],["`Availability` structures outline service booking windows, including duration, slots, resources, and associated rules."],["`ActionLink` structures represent interactive elements for booking, ordering, or other user actions, including platform and type specifics."],["Media, attributes, waitlists, and vertical-specific data provide supplementary information to enrich service details and cater to diverse industries."]]],[]]