Stay organized with collections
Save and categorize content based on your preferences.
--- v20/services/reach_plan_service.proto 2025-08-05 14:39:41.000000000 +0000+++ v21/services/reach_plan_service.proto 2025-08-05 14:39:49.000000000 +0000@@ -147,7 +148,31 @@ rpc ListPlannableUserLists(ListPlannableUserListsRequest)
returns (ListPlannableUserListsResponse) {
option (google.api.http) = {
- post: "/v20:listPlannableUserLists"+ post: "/v21:listPlannableUserLists"+ body: "*"+ };+ option (google.api.method_signature) = "customer_id";+ }++ // Returns the list of plannable user interests.+ // A plannable user interest is one that can be targeted in a reach forecast+ // using+ // [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].+ //+ // List of thrown errors:+ // [AuthenticationError]()+ // [AuthorizationError]()+ // [FieldError]()+ // [HeaderError]()+ // [InternalError]()+ // [ListOperationError]()+ // [QuotaError]()+ // [RequestError]()+ // [StringLengthError]()+ rpc ListPlannableUserInterests(ListPlannableUserInterestsRequest)+ returns (ListPlannableUserInterestsResponse) {+ option (google.api.http) = {+ post: "/v21:listPlannableUserInterests" body: "*"
};
option (google.api.method_signature) = "customer_id";
@@ -276,6 +301,10 @@ // The name of the customer being planned for. This is a user-defined value.
optional string customer_reach_group = 2;
++ // Optional. Additional information on the application issuing the request.+ google.ads.googleads.v21.common.AdditionalApplicationInfo+ reach_application_info = 3 [(google.api.field_behavior) = OPTIONAL];}
// A response with all available user lists with their plannable status.
@@ -332,7 +361,63 @@}
// Request message for
-// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v20.services.ReachPlanService.GenerateReachForecast].+// [ReachPlanService.ListPlannableUserInterests][google.ads.googleads.v21.services.ReachPlanService.ListPlannableUserInterests].+message ListPlannableUserInterestsRequest {+ // Required. The ID of the customer.+ string customer_id = 1 [(google.api.field_behavior) = REQUIRED];++ // Optional. A filter by user interest type. If set, only user interests with+ // a type listed in the filter will be returned. If not set, user interests of+ // all supported types will be returned. Supported user interest types are+ // AFFINITY and IN_MARKET. Each type must be specified at most once.+ repeated google.ads.googleads.v21.enums.UserInterestTaxonomyTypeEnum+ .UserInterestTaxonomyType user_interest_taxonomy_types = 2+ [(google.api.field_behavior) = OPTIONAL];++ // A filter by user interest name. If set, only user interests with a name+ // containing the literal string (case insensitive) in the filter will be+ // returned. Maximum length is 200 characters.+ optional string name_query = 3;++ // A filter by user interest path. If set, only user interests with a path+ // containing the literal string (case insensitive) in the filter will be+ // returned. Maximum length is 200 characters.+ optional string path_query = 4;++ // Optional. Additional information on the application issuing the request.+ google.ads.googleads.v21.common.AdditionalApplicationInfo+ reach_application_info = 5 [(google.api.field_behavior) = OPTIONAL];+}++// Response message for+// [ReachPlanService.ListPlannableUserInterests][google.ads.googleads.v21.services.ReachPlanService.ListPlannableUserInterests].+message ListPlannableUserInterestsResponse {+ // The list of plannable user interests.+ repeated PlannableUserInterest plannable_user_interests = 1;+}++// A plannable user interest that can be targeted in a reach forecast using+// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].+message PlannableUserInterest {+ // The user interest id.+ google.ads.googleads.v21.common.UserInterestInfo user_interest = 1;++ // The user interest type.+ google.ads.googleads.v21.enums.UserInterestTaxonomyTypeEnum+ .UserInterestTaxonomyType user_interest_type = 2;++ // The user interest display name.+ // For example, "Autos & Vehicles"+ string user_interest_display_name = 3;++ // The user interest path.+ // For example, "/Autos & Vehicles/Motor Vehicles/Motor Vehicles by+ // Type/Off-Road Vehicles"+ string user_interest_path = 4;+}++// Request message for+// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].message GenerateReachForecastRequest {
// Required. The ID of the customer.
string customer_id = 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/reach_plan_service.proto\n\n```diff\n--- v20/services/reach_plan_service.proto 2025-08-05 14:39:41.000000000 +0000\n+++ v21/services/reach_plan_service.proto 2025-08-05 14:39:49.000000000 +0000\n@@ -147,7 +148,31 @@\n rpc ListPlannableUserLists(ListPlannableUserListsRequest)\n returns (ListPlannableUserListsResponse) {\n option (google.api.http) = {\n- post: \"/v20:listPlannableUserLists\"\n+ post: \"/v21:listPlannableUserLists\"\n+ body: \"*\"\n+ };\n+ option (google.api.method_signature) = \"customer_id\";\n+ }\n+\n+ // Returns the list of plannable user interests.\n+ // A plannable user interest is one that can be targeted in a reach forecast\n+ // using\n+ // [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].\n+ //\n+ // List of thrown errors:\n+ // [AuthenticationError]()\n+ // [AuthorizationError]()\n+ // [FieldError]()\n+ // [HeaderError]()\n+ // [InternalError]()\n+ // [ListOperationError]()\n+ // [QuotaError]()\n+ // [RequestError]()\n+ // [StringLengthError]()\n+ rpc ListPlannableUserInterests(ListPlannableUserInterestsRequest)\n+ returns (ListPlannableUserInterestsResponse) {\n+ option (google.api.http) = {\n+ post: \"/v21:listPlannableUserInterests\"\n body: \"*\"\n };\n option (google.api.method_signature) = \"customer_id\";\n@@ -276,6 +301,10 @@\n\n // The name of the customer being planned for. This is a user-defined value.\n optional string customer_reach_group = 2;\n+\n+ // Optional. Additional information on the application issuing the request.\n+ google.ads.googleads.v21.common.AdditionalApplicationInfo\n+ reach_application_info = 3 [(google.api.field_behavior) = OPTIONAL];\n }\n\n // A response with all available user lists with their plannable status.\n@@ -332,7 +361,63 @@\n }\n\n // Request message for\n-// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v20.services.ReachPlanService.GenerateReachForecast].\n+// [ReachPlanService.ListPlannableUserInterests][google.ads.googleads.v21.services.ReachPlanService.ListPlannableUserInterests].\n+message ListPlannableUserInterestsRequest {\n+ // Required. The ID of the customer.\n+ string customer_id = 1 [(google.api.field_behavior) = REQUIRED];\n+\n+ // Optional. A filter by user interest type. If set, only user interests with\n+ // a type listed in the filter will be returned. If not set, user interests of\n+ // all supported types will be returned. Supported user interest types are\n+ // AFFINITY and IN_MARKET. Each type must be specified at most once.\n+ repeated google.ads.googleads.v21.enums.UserInterestTaxonomyTypeEnum\n+ .UserInterestTaxonomyType user_interest_taxonomy_types = 2\n+ [(google.api.field_behavior) = OPTIONAL];\n+\n+ // A filter by user interest name. If set, only user interests with a name\n+ // containing the literal string (case insensitive) in the filter will be\n+ // returned. Maximum length is 200 characters.\n+ optional string name_query = 3;\n+\n+ // A filter by user interest path. If set, only user interests with a path\n+ // containing the literal string (case insensitive) in the filter will be\n+ // returned. Maximum length is 200 characters.\n+ optional string path_query = 4;\n+\n+ // Optional. Additional information on the application issuing the request.\n+ google.ads.googleads.v21.common.AdditionalApplicationInfo\n+ reach_application_info = 5 [(google.api.field_behavior) = OPTIONAL];\n+}\n+\n+// Response message for\n+// [ReachPlanService.ListPlannableUserInterests][google.ads.googleads.v21.services.ReachPlanService.ListPlannableUserInterests].\n+message ListPlannableUserInterestsResponse {\n+ // The list of plannable user interests.\n+ repeated PlannableUserInterest plannable_user_interests = 1;\n+}\n+\n+// A plannable user interest that can be targeted in a reach forecast using\n+// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].\n+message PlannableUserInterest {\n+ // The user interest id.\n+ google.ads.googleads.v21.common.UserInterestInfo user_interest = 1;\n+\n+ // The user interest type.\n+ google.ads.googleads.v21.enums.UserInterestTaxonomyTypeEnum\n+ .UserInterestTaxonomyType user_interest_type = 2;\n+\n+ // The user interest display name.\n+ // For example, \"Autos & Vehicles\"\n+ string user_interest_display_name = 3;\n+\n+ // The user interest path.\n+ // For example, \"/Autos & Vehicles/Motor Vehicles/Motor Vehicles by\n+ // Type/Off-Road Vehicles\"\n+ string user_interest_path = 4;\n+}\n+\n+// Request message for\n+// [ReachPlanService.GenerateReachForecast][google.ads.googleads.v21.services.ReachPlanService.GenerateReachForecast].\n message GenerateReachForecastRequest {\n // Required. The ID of the customer.\n string customer_id = 1 [(google.api.field_behavior) = REQUIRED];\n```"]]