/services/reach_plan_service.proto

--- v14/services/reach_plan_service.proto   2023-10-19 02:11:02.000000000 +0000
+++ v15/services/reach_plan_service.proto   2023-10-19 02:11:06.000000000 +0000
@@ -185,14 +187,17 @@
   // 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.v14.common.DeviceInfo devices = 3;
+  repeated google.ads.googleads.v15.common.DeviceInfo devices = 3;

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

   // Targetable YouTube Select Lineups for the ad product.
   repeated YouTubeSelectLineUp youtube_select_lineups = 5;
+
+  // Targetable surface combinations for the ad product.
+  SurfaceTargetingCombinations surface_targeting = 6;
 }

 // Request message for
@@ -459,6 +464,14 @@
   // impressions that may fall outside the specified Targeting, due to
   // insufficient information on signed-in users.
   optional int64 total_coview_impressions = 14;
+
+  // Number of ad views forecasted for the specified product and targeting.
+  // A view is counted when a viewer views a larger portion or the entirety of
+  // an ad beyond an impression.
+  //
+  // See https://support.google.com/google-ads/answer/2375431 for
+  // more information on views.
+  optional int64 views = 15;
 }

 // The forecasted allocation and traffic metrics for a specific product
@@ -525,6 +538,22 @@
   // impressions that may fall outside the specified Targeting, due to
   // insufficient information on signed-in users.
   optional int64 total_coview_impressions = 9;
+
+  // The number of times per selected time unit a user will see an ad, averaged
+  // over the number of time units in the forecast length. This field will only
+  // be populated for a Target Frequency campaign.
+  //
+  // See https://support.google.com/google-ads/answer/12400225 for more
+  // information about Target Frequency campaigns.
+  optional double average_frequency = 10;
+
+  // Number of ad views forecasted for the specified product and targeting.
+  // A view is counted when a viewer views a larger portion or the entirety of
+  // an ad beyond an impression.
+  //
+  // See https://support.google.com/google-ads/answer/2375431 for
+  // more information on views.
+  optional int64 views = 11;
 }

 // Audience metrics for the planned products.
@@ -581,11 +610,21 @@
 // Audience targeting for reach forecast.
 message AudienceTargeting {
   // List of audiences based on user interests to be targeted.
-  repeated google.ads.googleads.v14.common.UserInterestInfo user_interest = 1;
+  repeated google.ads.googleads.v15.common.UserInterestInfo user_interest = 1;
 }

 // Advanced targeting settings for products.
 message AdvancedProductTargeting {
+  // Surface targeting settings for this product.
+  SurfaceTargeting surface_targeting_settings = 2;
+
+  // Settings for a Target frequency campaign. Must be set when selecting the
+  // TARGET_FREQUENCY product.
+  //
+  // See https://support.google.com/google-ads/answer/12400225 for more
+  // information about Target Frequency campaigns.
+  TargetFrequencySettings target_frequency_settings = 3;
+
   // Targeting options for this product.
   oneof advanced_targeting {
     // Settings for YouTube Select targeting.
@@ -607,3 +646,32 @@
   // The unique name of the YouTube Select Lineup.
   string lineup_name = 2;
 }
+
+// The surface targeting combinations available for an ad product.
+message SurfaceTargetingCombinations {
+  // Default surface targeting applied to the ad product.
+  SurfaceTargeting default_targeting = 1;
+
+  // Available surface target combinations for the ad product.
+  repeated SurfaceTargeting available_targeting_combinations = 2;
+}
+
+// Container for surfaces for a product. Surfaces refer to the available types
+// of ad inventories such as In-Feed, In-Stream, and Shorts.
+message SurfaceTargeting {
+  // List of surfaces available to target.
+  repeated google.ads.googleads.v15.enums.ReachPlanSurfaceEnum.ReachPlanSurface
+      surfaces = 1;
+}
+
+// Target Frequency settings for a supported product.
+message TargetFrequencySettings {
+  // Required. The time unit used to describe the time frame for
+  // target_frequency.
+  google.ads.googleads.v15.enums.TargetFrequencyTimeUnitEnum
+      .TargetFrequencyTimeUnit time_unit = 1
+      [(google.api.field_behavior) = REQUIRED];
+
+  // Required. The target frequency goal per selected time unit.
+  int32 target_frequency = 2 [(google.api.field_behavior) = REQUIRED];
+}