/services/reach_plan_service.proto

Stay organized with collections Save and categorize content based on your preferences.
--- v11/services/reach_plan_service.proto   2022-10-07 15:24:06.000000000 +0000
+++ v12/services/reach_plan_service.proto   2022-10-07 15:24:13.000000000 +0000
@@ -74,32 +73,12 @@
   //   [RequestError]()
   rpc ListPlannableProducts(ListPlannableProductsRequest) returns (ListPlannableProductsResponse) {
     option (google.api.http) = {
-      post: "/v11:listPlannableProducts"
+      post: "/v12:listPlannableProducts"
       body: "*"
     };
     option (google.api.method_signature) = "plannable_location_id";
   }

-  // Generates a product mix ideas given a set of preferences. This method
-  // helps the advertiser to obtain a good mix of ad formats and budget
-  // allocations based on its preferences.
-  //
-  // List of thrown errors:
-  //   [AuthenticationError]()
-  //   [AuthorizationError]()
-  //   [HeaderError]()
-  //   [InternalError]()
-  //   [QuotaError]()
-  //   [ReachPlanError]()
-  //   [RequestError]()
-  rpc GenerateProductMixIdeas(GenerateProductMixIdeasRequest) returns (GenerateProductMixIdeasResponse) {
-    option (google.api.http) = {
-      post: "/v11/customers/{customer_id=*}:generateProductMixIdeas"
-      body: "*"
-    };
-    option (google.api.method_signature) = "customer_id,plannable_location_id,currency_code,budget_micros";
-  }
-
   // Generates a reach forecast for a given targeting / product mix.
   //
   // List of thrown errors:
@@ -200,81 +179,16 @@
   // TABLET device targeting is automatically applied to reported metrics
   // when MOBILE targeting is selected for CPM_MASTHEAD,
   // GOOGLE_PREFERRED_BUMPER, and GOOGLE_PREFERRED_SHORT products.
-  repeated google.ads.googleads.v11.common.DeviceInfo devices = 3;
+  repeated google.ads.googleads.v12.common.DeviceInfo devices = 3;

   // Targetable networks for the ad product.
-  repeated google.ads.googleads.v11.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4;
+  repeated google.ads.googleads.v12.enums.ReachPlanNetworkEnum.ReachPlanNetwork networks = 4;

   // Targetable YouTube Select Lineups for the ad product.
   repeated YouTubeSelectLineUp youtube_select_lineups = 5;
 }

-// Request message for [ReachPlanService.GenerateProductMixIdeas][google.ads.googleads.v11.services.ReachPlanService.GenerateProductMixIdeas].
-message GenerateProductMixIdeasRequest {
-  // Required. The ID of the customer.
-  string customer_id = 1 [(google.api.field_behavior) = REQUIRED];
-
-  // Required. The ID of the location, this is one of the IDs returned by
-  // [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations].
-  string plannable_location_id = 6 [(google.api.field_behavior) = REQUIRED];
-
-  // Required. Currency code.
-  // Three-character ISO 4217 currency code.
-  string currency_code = 7 [(google.api.field_behavior) = REQUIRED];
-
-  // Required. Total budget.
-  // Amount in micros. One million is equivalent to one unit.
-  int64 budget_micros = 8 [(google.api.field_behavior) = REQUIRED];
-
-  // The preferences of the suggested product mix.
-  // An unset preference is interpreted as all possible values are allowed,
-  // unless explicitly specified.
-  Preferences preferences = 5;
-}
-
-// Set of preferences about the planned mix.
-message Preferences {
-  // True if ad skippable.
-  // If not set, default is any value.
-  optional bool is_skippable = 6;
-
-  // True if ad start with sound.
-  // If not set, default is any value.
-  optional bool starts_with_sound = 7;
-
-  // The length of the ad.
-  // If not set, default is any value.
-  google.ads.googleads.v11.enums.ReachPlanAdLengthEnum.ReachPlanAdLength ad_length = 3;
-
-  // True if ad will only show on the top content.
-  // If not set, default is false.
-  optional bool top_content_only = 8;
-
-  // True if the price is guaranteed. The cost of serving the ad is agreed
-  // upfront and not subject to an auction.
-  // If not set, default is any value.
-  optional bool has_guaranteed_price = 9;
-}
-
-// The suggested product mix.
-message GenerateProductMixIdeasResponse {
-  // A list of products (ad formats) and the associated budget allocation idea.
-  repeated ProductAllocation product_allocation = 1;
-}
-
-// An allocation of a part of the budget on a given product.
-message ProductAllocation {
-  // Selected product for planning. The product codes returned are within the
-  // set of the ones returned by ListPlannableProducts when using the same
-  // location ID.
-  optional string plannable_product_code = 3;
-
-  // The value to be allocated for the suggested product in requested currency.
-  // Amount in micros. One million is equivalent to one unit.
-  optional int64 budget_micros = 4;
-}
-
-// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v11.services.ReachPlanService.GenerateReachForecast].
+// Request message for [ReachPlanService.GenerateReachForecast][google.ads.googleads.v12.services.ReachPlanService.GenerateReachForecast].
 message GenerateReachForecastRequest {
   // Required. The ID of the customer.
   string customer_id = 1 [(google.api.field_behavior) = REQUIRED];
@@ -365,13 +279,28 @@

 // The targeting for which traffic metrics will be reported.
 message Targeting {
-  // Required. The ID of the selected location. Plannable location IDs can be
-  // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v11.services.ReachPlanService.ListPlannableLocations].
+  // The ID of the selected location. Plannable location IDs can be
+  // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
+  //
+  // Requests must set either this field or `plannable_location_ids`.
+  //
+  // This field is deprecated as of V12 and will be removed in a future release.
+  // Use `plannable_location_ids` instead.
   optional string plannable_location_id = 6;

+  // The list of plannable location IDs to target with this forecast.
+  //
+  // If more than one ID is provided, all IDs must have the same
+  // `parent_country_id`. Planning for more than `parent_county` is not
+  // supported. Plannable location IDs and their `parent_country_id` can be
+  // obtained from [ReachPlanService.ListPlannableLocations][google.ads.googleads.v12.services.ReachPlanService.ListPlannableLocations].
+  //
+  // Requests must set either this field or `plannable_location_id`.
+  repeated string plannable_location_ids = 8;
+
   // Targeted age range.
   // An unset value is equivalent to targeting all ages.
-  google.ads.googleads.v11.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2;
+  google.ads.googleads.v12.enums.ReachPlanAgeRangeEnum.ReachPlanAgeRange age_range = 2;

   // Targeted genders.
   // An unset value is equivalent to targeting MALE and FEMALE.