Stay organized with collections
Save and categorize content based on your preferences.
---v18/services/local_services_lead_service.proto2024-10-1617:56:30.000000000+0000+++v19/services/local_services_lead_service.proto2025-04-1617:10:13.000000000+0000@@-1,96+1,170@@-//Copyright2024GoogleLLC+//Copyright2025GoogleLLC////LicensedundertheApacheLicense,Version2.0(the"License");//youmaynotusethisfileexceptincompliancewiththeLicense.//YoumayobtainacopyoftheLicenseat////http://www.apache.org/licenses/LICENSE-2.0////Unlessrequiredbyapplicablelaworagreedtoinwriting,software//distributedundertheLicenseisdistributedonan"AS IS"BASIS,//WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.//SeetheLicenseforthespecificlanguagegoverningpermissionsand//limitationsundertheLicense.syntax="proto3";-packagegoogle.ads.googleads.v18.services;+packagegoogle.ads.googleads.v19.services;+import"google/ads/googleads/v19/enums/local_services_lead_credit_issuance_decision.proto";+import"google/ads/googleads/v19/enums/local_services_lead_survey_answer.proto";+import"google/ads/googleads/v19/enums/local_services_lead_survey_dissatisfied_reason.proto";+import"google/ads/googleads/v19/enums/local_services_lead_survey_satisfied_reason.proto";import"google/api/annotations.proto";import"google/api/client.proto";import"google/api/field_behavior.proto";import"google/api/resource.proto";import"google/rpc/status.proto";-optioncsharp_namespace="Google.Ads.GoogleAds.V18.Services";-optiongo_package="google.golang.org/genproto/googleapis/ads/googleads/v18/services;services";+optioncsharp_namespace="Google.Ads.GoogleAds.V19.Services";+optiongo_package="google.golang.org/genproto/googleapis/ads/googleads/v19/services;services";optionjava_multiple_files=true;optionjava_outer_classname="LocalServicesLeadServiceProto";-optionjava_package="com.google.ads.googleads.v18.services";+optionjava_package="com.google.ads.googleads.v19.services";optionobjc_class_prefix="GAA";-optionphp_namespace="Google\\Ads\\GoogleAds\\V18\\Services";-optionruby_package="Google::Ads::GoogleAds::V18::Services";+optionphp_namespace="Google\\Ads\\GoogleAds\\V19\\Services";+optionruby_package="Google::Ads::GoogleAds::V19::Services";//ThisserviceallowsmanagementofLocalServicesLeadresources.serviceLocalServicesLeadService{option(google.api.default_host)="googleads.googleapis.com";option(google.api.oauth_scopes)="https://www.googleapis.com/auth/adwords";//RPCtoappendLocalServicesLeadConversationresourcestoLocalServices//Leadresources.rpcAppendLeadConversation(AppendLeadConversationRequest)returns(AppendLeadConversationResponse){option(google.api.http)={-post:"/v18/customers/{customer_id=*}/localServices:appendLeadConversation"+post:"/v19/customers/{customer_id=*}/localServices:appendLeadConversation"body:"*"};option(google.api.method_signature)="customer_id,conversations";}++//RPCtoprovidefeedbackonLocalServicesLeadresources.+rpcProvideLeadFeedback(ProvideLeadFeedbackRequest)+returns(ProvideLeadFeedbackResponse){+option(google.api.http)={+post:"/v19/{resource_name=customers/*/localServicesLeads/*}:provideLeadFeedback"+body:"*"+};+}}//Requestmessagefor-//[LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation].+//[LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v19.services.LocalServicesLeadService.AppendLeadConversation].messageAppendLeadConversationRequest{//Required.TheIdofthecustomerwhichownstheleadsontowhichthe//conversationswillbeappended.stringcustomer_id=1[(google.api.field_behavior)=REQUIRED];//Required.Conversationsthatarebeingappended.repeatedConversationconversations=2[(google.api.field_behavior)=REQUIRED];}//Responsemessagefor-//[LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation].+//[LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v19.services.LocalServicesLeadService.AppendLeadConversation].messageAppendLeadConversationResponse{//Required.Listofappendconversationoperationresults.repeatedConversationOrErrorresponses=1[(google.api.field_behavior)=REQUIRED];}//Detailsoftheconversationthatneedstobeappended.messageConversation{//Required.Theresourcenameofthelocalservicesleadthatthe//conversationshouldbeappliedto.stringlocal_services_lead=1[(google.api.field_behavior)=REQUIRED,(google.api.resource_reference)={type:"googleads.googleapis.com/LocalServicesLead"}];//Required.Textmessagethatuserwantedtoappendtolead.stringtext=2[(google.api.field_behavior)=REQUIRED];}//Resultoftheappendconversationoperation.messageConversationOrError{//Appendoperationresponseoneofappend_lead_conversation_response{//Theresourcenameoftheappendedlocalservicesleadconversation.stringlocal_services_lead_conversation=1;//Failurestatuswhentherequestcouldnotbeprocessed.google.rpc.Statuspartial_failure_error=2;}}++//Detailsaboutvariousfactorsforbeingsatisfiedwiththelead.+messageSurveySatisfied{+//Required.Provider's reason for being satisfied with the lead.+google.ads.googleads.v19.enums.LocalServicesLeadSurveySatisfiedReasonEnum+.SurveySatisfiedReasonsurvey_satisfied_reason=1+[(google.api.field_behavior)=REQUIRED];++//Optional.Provider's free form comments. This field is required when+//OTHER_SATISFIED_REASONisselectedasthereason.+stringother_reason_comment=2[(google.api.field_behavior)=OPTIONAL];+}++//Detailsaboutvariousfactorsfornotbeingsatisfiedwiththelead.+messageSurveyDissatisfied{+//Required.Provider's reason for not being satisfied with the lead.+google.ads.googleads.v19.enums.LocalServicesLeadSurveyDissatisfiedReasonEnum+.SurveyDissatisfiedReasonsurvey_dissatisfied_reason=1+[(google.api.field_behavior)=REQUIRED];++//Optional.Provider's free form comments. This field is required when+//OTHER_DISSATISFIED_REASONisselectedasthereason.+stringother_reason_comment=2[(google.api.field_behavior)=OPTIONAL];+}++//Requestmessagefor+//[LocalServicesLeadService.ProvideLeadFeedback][google.ads.googleads.v19.services.LocalServicesLeadService.ProvideLeadFeedback].+messageProvideLeadFeedbackRequest{+//Required.Theresourcenameofthelocalservicesleadthatforwhichthe+//feedbackisbeingprovided.+stringresource_name=1[+(google.api.field_behavior)=REQUIRED,+(google.api.resource_reference)={+type:"googleads.googleapis.com/LocalServicesLead"+}+];++//Required.SurveyanswerforLocalServicesAdsLead.+google.ads.googleads.v19.enums.LocalServicesLeadSurveyAnswerEnum.SurveyAnswer+survey_answer=2[(google.api.field_behavior)=REQUIRED];++//Detailsaboutvariousfactorsforbeingsatisfiedordissatisfiedwiththe+//lead.+oneofsurvey_details{+//Detailsaboutvariousfactorsforbeingsatisfiedwiththelead.+SurveySatisfiedsurvey_satisfied=3;++//Detailsaboutvariousfactorsfornotbeingsatisfiedwiththelead.+SurveyDissatisfiedsurvey_dissatisfied=4;+}+}++//Responsemessagefor+//[LocalServicesLeadService.ProvideLeadFeedback][google.ads.googleads.v19.services.LocalServicesLeadService.ProvideLeadFeedback].+messageProvideLeadFeedbackResponse{+//Required.Decisionofbonuscreditissuedorrejected.Ifabonuscreditis+//issued,itwillbeavailableforuseinabouttwomonths.+google.ads.googleads.v19.enums.LocalServicesLeadCreditIssuanceDecisionEnum+.CreditIssuanceDecisioncredit_issuance_decision=1+[(google.api.field_behavior)=REQUIRED];+}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-20 UTC."],[],[],null,["# /services/local_services_lead_service.proto\n\n```python\n--- v18/services/local_services_lead_service.proto 2024-10-16 17:56:30.000000000 +0000\n+++ v19/services/local_services_lead_service.proto 2025-04-16 17:10:13.000000000 +0000\n@@ -1,96 +1,170 @@\n-// Copyright 2024 Google LLC\n+// Copyright 2025 Google LLC\n //\n // Licensed under the Apache License, Version 2.0 (the \"License\");\n // you may not use this file except in compliance with the License.\n // You may obtain a copy of the License at\n //\n // http://www.apache.org/licenses/LICENSE-2.0\n //\n // Unless required by applicable law or agreed to in writing, software\n // distributed under the License is distributed on an \"AS IS\" BASIS,\n // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n // See the License for the specific language governing permissions and\n // limitations under the License.\n\n syntax = \"proto3\";\n\n-package google.ads.googleads.v18.services;\n+package google.ads.googleads.v19.services;\n\n+import \"google/ads/googleads/v19/enums/local_services_lead_credit_issuance_decision.proto\";\n+import \"google/ads/googleads/v19/enums/local_services_lead_survey_answer.proto\";\n+import \"google/ads/googleads/v19/enums/local_services_lead_survey_dissatisfied_reason.proto\";\n+import \"google/ads/googleads/v19/enums/local_services_lead_survey_satisfied_reason.proto\";\n import \"google/api/annotations.proto\";\n import \"google/api/client.proto\";\n import \"google/api/field_behavior.proto\";\n import \"google/api/resource.proto\";\n import \"google/rpc/status.proto\";\n\n-option csharp_namespace = \"Google.Ads.GoogleAds.V18.Services\";\n-option go_package = \"google.golang.org/genproto/googleapis/ads/googleads/v18/services;services\";\n+option csharp_namespace = \"Google.Ads.GoogleAds.V19.Services\";\n+option go_package = \"google.golang.org/genproto/googleapis/ads/googleads/v19/services;services\";\n option java_multiple_files = true;\n option java_outer_classname = \"LocalServicesLeadServiceProto\";\n-option java_package = \"com.google.ads.googleads.v18.services\";\n+option java_package = \"com.google.ads.googleads.v19.services\";\n option objc_class_prefix = \"GAA\";\n-option php_namespace = \"Google\\\\Ads\\\\GoogleAds\\\\V18\\\\Services\";\n-option ruby_package = \"Google::Ads::GoogleAds::V18::Services\";\n+option php_namespace = \"Google\\\\Ads\\\\GoogleAds\\\\V19\\\\Services\";\n+option ruby_package = \"Google::Ads::GoogleAds::V19::Services\";\n\n // This service allows management of LocalServicesLead resources.\n service LocalServicesLeadService {\n option (google.api.default_host) = \"googleads.googleapis.com\";\n option (google.api.oauth_scopes) = \"https://www.googleapis.com/auth/adwords\";\n\n // RPC to append Local Services Lead Conversation resources to Local Services\n // Lead resources.\n rpc AppendLeadConversation(AppendLeadConversationRequest)\n returns (AppendLeadConversationResponse) {\n option (google.api.http) = {\n- post: \"/v18/customers/{customer_id=*}/localServices:appendLeadConversation\"\n+ post: \"/v19/customers/{customer_id=*}/localServices:appendLeadConversation\"\n body: \"*\"\n };\n option (google.api.method_signature) = \"customer_id,conversations\";\n }\n+\n+ // RPC to provide feedback on Local Services Lead resources.\n+ rpc ProvideLeadFeedback(ProvideLeadFeedbackRequest)\n+ returns (ProvideLeadFeedbackResponse) {\n+ option (google.api.http) = {\n+ post: \"/v19/{resource_name=customers/*/localServicesLeads/*}:provideLeadFeedback\"\n+ body: \"*\"\n+ };\n+ }\n }\n\n // Request message for\n-// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation].\n+// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v19.services.LocalServicesLeadService.AppendLeadConversation].\n message AppendLeadConversationRequest {\n // Required. The Id of the customer which owns the leads onto which the\n // conversations will be appended.\n string customer_id = 1 [(google.api.field_behavior) = REQUIRED];\n\n // Required. Conversations that are being appended.\n repeated Conversation conversations = 2\n [(google.api.field_behavior) = REQUIRED];\n }\n\n // Response message for\n-// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v18.services.LocalServicesLeadService.AppendLeadConversation].\n+// [LocalServicesLeadService.AppendLeadConversation][google.ads.googleads.v19.services.LocalServicesLeadService.AppendLeadConversation].\n message AppendLeadConversationResponse {\n // Required. List of append conversation operation results.\n repeated ConversationOrError responses = 1\n [(google.api.field_behavior) = REQUIRED];\n }\n\n // Details of the conversation that needs to be appended.\n message Conversation {\n // Required. The resource name of the local services lead that the\n // conversation should be applied to.\n string local_services_lead = 1 [\n (google.api.field_behavior) = REQUIRED,\n (google.api.resource_reference) = {\n type: \"googleads.googleapis.com/LocalServicesLead\"\n }\n ];\n\n // Required. Text message that user wanted to append to lead.\n string text = 2 [(google.api.field_behavior) = REQUIRED];\n }\n\n // Result of the append conversation operation.\n message ConversationOrError {\n // Append operation response\n oneof append_lead_conversation_response {\n // The resource name of the appended local services lead conversation.\n string local_services_lead_conversation = 1;\n\n // Failure status when the request could not be processed.\n google.rpc.Status partial_failure_error = 2;\n }\n }\n+\n+// Details about various factors for being satisfied with the lead.\n+message SurveySatisfied {\n+ // Required. Provider's reason for being satisfied with the lead.\n+ google.ads.googleads.v19.enums.LocalServicesLeadSurveySatisfiedReasonEnum\n+ .SurveySatisfiedReason survey_satisfied_reason = 1\n+ [(google.api.field_behavior) = REQUIRED];\n+\n+ // Optional. Provider's free form comments. This field is required when\n+ // OTHER_SATISFIED_REASON is selected as the reason.\n+ string other_reason_comment = 2 [(google.api.field_behavior) = OPTIONAL];\n+}\n+\n+// Details about various factors for not being satisfied with the lead.\n+message SurveyDissatisfied {\n+ // Required. Provider's reason for not being satisfied with the lead.\n+ google.ads.googleads.v19.enums.LocalServicesLeadSurveyDissatisfiedReasonEnum\n+ .SurveyDissatisfiedReason survey_dissatisfied_reason = 1\n+ [(google.api.field_behavior) = REQUIRED];\n+\n+ // Optional. Provider's free form comments. This field is required when\n+ // OTHER_DISSATISFIED_REASON is selected as the reason.\n+ string other_reason_comment = 2 [(google.api.field_behavior) = OPTIONAL];\n+}\n+\n+// Request message for\n+// [LocalServicesLeadService.ProvideLeadFeedback][google.ads.googleads.v19.services.LocalServicesLeadService.ProvideLeadFeedback].\n+message ProvideLeadFeedbackRequest {\n+ // Required. The resource name of the local services lead that for which the\n+ // feedback is being provided.\n+ string resource_name = 1 [\n+ (google.api.field_behavior) = REQUIRED,\n+ (google.api.resource_reference) = {\n+ type: \"googleads.googleapis.com/LocalServicesLead\"\n+ }\n+ ];\n+\n+ // Required. Survey answer for Local Services Ads Lead.\n+ google.ads.googleads.v19.enums.LocalServicesLeadSurveyAnswerEnum.SurveyAnswer\n+ survey_answer = 2 [(google.api.field_behavior) = REQUIRED];\n+\n+ // Details about various factors for being satisfied or dissatisfied with the\n+ // lead.\n+ oneof survey_details {\n+ // Details about various factors for being satisfied with the lead.\n+ SurveySatisfied survey_satisfied = 3;\n+\n+ // Details about various factors for not being satisfied with the lead.\n+ SurveyDissatisfied survey_dissatisfied = 4;\n+ }\n+}\n+\n+// Response message for\n+// [LocalServicesLeadService.ProvideLeadFeedback][google.ads.googleads.v19.services.LocalServicesLeadService.ProvideLeadFeedback].\n+message ProvideLeadFeedbackResponse {\n+ // Required. Decision of bonus credit issued or rejected. If a bonus credit is\n+ // issued, it will be available for use in about two months.\n+ google.ads.googleads.v19.enums.LocalServicesLeadCreditIssuanceDecisionEnum\n+ .CreditIssuanceDecision credit_issuance_decision = 1\n+ [(google.api.field_behavior) = REQUIRED];\n+}\n```"]]