/resources/recommendation.proto

Stay organized with collections Save and categorize content based on your preferences.
--- v11/resources/recommendation.proto  2022-08-17 18:51:23.000000000 +0000
+++ v12/resources/recommendation.proto  2022-10-07 15:06:00.000000000 +0000
@@ -1,434 +1,476 @@
 // Copyright 2022 Google LLC
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
 //     http://www.apache.org/licenses/LICENSE-2.0
 //
 // Unless required by applicable law or agreed to in writing, software
 // distributed under the License is distributed on an "AS IS" BASIS,
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.

 syntax = "proto3";

-package google.ads.googleads.v11.resources;
+package google.ads.googleads.v12.resources;

-import "google/ads/googleads/v11/common/criteria.proto";
-import "google/ads/googleads/v11/common/extensions.proto";
-import "google/ads/googleads/v11/enums/keyword_match_type.proto";
-import "google/ads/googleads/v11/enums/recommendation_type.proto";
-import "google/ads/googleads/v11/enums/target_cpa_opt_in_recommendation_goal.proto";
-import "google/ads/googleads/v11/resources/ad.proto";
+import "google/ads/googleads/v12/common/criteria.proto";
+import "google/ads/googleads/v12/common/extensions.proto";
+import "google/ads/googleads/v12/enums/keyword_match_type.proto";
+import "google/ads/googleads/v12/enums/recommendation_type.proto";
+import "google/ads/googleads/v12/enums/target_cpa_opt_in_recommendation_goal.proto";
+import "google/ads/googleads/v12/resources/ad.proto";
 import "google/api/field_behavior.proto";
 import "google/api/resource.proto";

-option csharp_namespace = "Google.Ads.GoogleAds.V11.Resources";
-option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v11/resources;resources";
+option csharp_namespace = "Google.Ads.GoogleAds.V12.Resources";
+option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v12/resources;resources";
 option java_multiple_files = true;
 option java_outer_classname = "RecommendationProto";
-option java_package = "com.google.ads.googleads.v11.resources";
+option java_package = "com.google.ads.googleads.v12.resources";
 option objc_class_prefix = "GAA";
-option php_namespace = "Google\\Ads\\GoogleAds\\V11\\Resources";
-option ruby_package = "Google::Ads::GoogleAds::V11::Resources";
+option php_namespace = "Google\\Ads\\GoogleAds\\V12\\Resources";
+option ruby_package = "Google::Ads::GoogleAds::V12::Resources";

 // Proto file describing the Recommendation resource.

 // A recommendation.
 message Recommendation {
   option (google.api.resource) = {
     type: "googleads.googleapis.com/Recommendation"
     pattern: "customers/{customer_id}/recommendations/{recommendation_id}"
   };

   // The impact of making the change as described in the recommendation.
   // Some types of recommendations may not have impact information.
   message RecommendationImpact {
     // Output only. Base metrics at the time the recommendation was generated.
     RecommendationMetrics base_metrics = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Estimated metrics if the recommendation is applied.
     RecommendationMetrics potential_metrics = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // Weekly account performance metrics. For some recommendation types, these
   // are averaged over the past 90-day period and hence can be fractional.
   message RecommendationMetrics {
     // Output only. Number of ad impressions.
     optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Number of ad clicks.
     optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Cost (in micros) for advertising, in the local currency for the account.
     optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Number of conversions.
     optional double conversions = 9 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Number of video views for a video ad campaign.
     optional double video_views = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The budget recommendation for budget constrained campaigns.
   message CampaignBudgetRecommendation {
     // The impact estimates for a given budget amount.
     message CampaignBudgetRecommendationOption {
       // Output only. The budget amount for this option.
       optional int64 budget_amount_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY];

       // Output only. The impact estimate if budget is changed to amount specified in this
       // option.
       RecommendationImpact impact = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
     }

     // Output only. The current budget amount in micros.
     optional int64 current_budget_amount_micros = 7 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommended budget amount in micros.
     optional int64 recommended_budget_amount_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The budget amounts and associated impact estimates for some values of
     // possible budget amounts.
     repeated CampaignBudgetRecommendationOption budget_options = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The keyword recommendation.
   message KeywordRecommendation {
     // Output only. The recommended keyword.
-    google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    google.ads.googleads.v12.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommended CPC (cost-per-click) bid.
     optional int64 recommended_cpc_bid_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The text ad recommendation.
   message TextAdRecommendation {
     // Output only. Recommended ad.
     Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Creation date of the recommended ad.
     // YYYY-MM-DD format, for example, 2018-04-17.
     optional string creation_date = 4 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Date, if present, is the earliest when the recommendation will be auto
     // applied.
     // YYYY-MM-DD format, for example, 2018-04-17.
     optional string auto_apply_date = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Target CPA opt-in recommendation.
   message TargetCpaOptInRecommendation {
     // The Target CPA opt-in option with impact estimate.
     message TargetCpaOptInRecommendationOption {
       // Output only. The goal achieved by this option.
-      google.ads.googleads.v11.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+      google.ads.googleads.v12.enums.TargetCpaOptInRecommendationGoalEnum.TargetCpaOptInRecommendationGoal goal = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

       // Output only. Average CPA target.
       optional int64 target_cpa_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY];

       // Output only. The minimum campaign budget, in local currency for the account,
       // required to achieve the target CPA.
       // Amount is specified in micros, where one million is equivalent to one
       // currency unit.
       optional int64 required_campaign_budget_amount_micros = 6 [(google.api.field_behavior) = OUTPUT_ONLY];

       // Output only. The impact estimate if this option is selected.
       RecommendationImpact impact = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
     }

     // Output only. The available goals and corresponding options for Target CPA strategy.
     repeated TargetCpaOptInRecommendationOption options = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommended average CPA target. See required budget amount and impact
     // of using this recommendation in options list.
     optional int64 recommended_target_cpa_micros = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Maximize Conversions Opt-In recommendation.
   message MaximizeConversionsOptInRecommendation {
     // Output only. The recommended new budget amount.
     optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Enhanced Cost-Per-Click Opt-In recommendation.
   message EnhancedCpcOptInRecommendation {

   }

   // The Search Partners Opt-In recommendation.
   message SearchPartnersOptInRecommendation {

   }

   // The Maximize Clicks opt-in recommendation.
   message MaximizeClicksOptInRecommendation {
     // Output only. The recommended new budget amount.
     // Only set if the current budget is too high.
     optional int64 recommended_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Optimize Ad Rotation recommendation.
   message OptimizeAdRotationRecommendation {

   }

   // The Callout extension recommendation.
   message CalloutExtensionRecommendation {
     // Output only. Callout extensions recommended to be added.
-    repeated google.ads.googleads.v11.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    repeated google.ads.googleads.v12.common.CalloutFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Sitelink extension recommendation.
   message SitelinkExtensionRecommendation {
     // Output only. Sitelink extensions recommended to be added.
-    repeated google.ads.googleads.v11.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    repeated google.ads.googleads.v12.common.SitelinkFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Call extension recommendation.
   message CallExtensionRecommendation {
     // Output only. Call extensions recommended to be added.
-    repeated google.ads.googleads.v11.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    repeated google.ads.googleads.v12.common.CallFeedItem recommended_extensions = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The keyword match type recommendation.
   message KeywordMatchTypeRecommendation {
     // Output only. The existing keyword where the match type should be more broad.
-    google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    google.ads.googleads.v12.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommended new match type.
-    google.ads.googleads.v11.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+    google.ads.googleads.v12.enums.KeywordMatchTypeEnum.KeywordMatchType recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The move unused budget recommendation.
   message MoveUnusedBudgetRecommendation {
     // Output only. The excess budget's resource_name.
     optional string excess_campaign_budget = 3 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommendation for the constrained budget to increase.
     CampaignBudgetRecommendation budget_recommendation = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The Target ROAS opt-in recommendation.
   message TargetRoasOptInRecommendation {
     // Output only. The recommended target ROAS (revenue per unit of spend).
     // The value is between 0.01 and 1000.0, inclusive.
     optional double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The minimum campaign budget, in local currency for the account,
     // required to achieve the target ROAS.
     // Amount is specified in micros, where one million is equivalent to one
     // currency unit.
     optional int64 required_campaign_budget_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The add responsive search ad asset recommendation.
   message ResponsiveSearchAdAssetRecommendation {
     // Output only. The current ad to be updated.
     Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The recommended assets. This is populated only with the new headlines
     // and/or descriptions, and is otherwise empty.
     Ad recommended_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The responsive search ad improve ad strength recommendation.
   message ResponsiveSearchAdImproveAdStrengthRecommendation {
     // Output only. The current ad to be updated.
     Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The updated ad.
     Ad recommended_ad = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The add responsive search ad recommendation.
   message ResponsiveSearchAdRecommendation {
     // Output only. Recommended ad.
     Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The use broad match keyword recommendation.
   message UseBroadMatchKeywordRecommendation {
     // Output only. Sample of keywords to be expanded to Broad Match.
-    repeated google.ads.googleads.v11.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+    repeated google.ads.googleads.v12.common.KeywordInfo keyword = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Total number of keywords to be expanded to Broad Match in the campaign.
     int64 suggested_keywords_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Total number of keywords in the campaign.
     int64 campaign_keywords_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Whether the associated campaign uses a shared budget.
     bool campaign_uses_shared_budget = 4 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The budget recommended to avoid becoming budget constrained after
     // applying the recommendation.
     int64 required_campaign_budget_amount_micros = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

   // The upgrade a Smart Shopping campaign to a Performance Max campaign
   // recommendation.
   message UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation {
     // Output only. ID of Merchant Center account.
     int64 merchant_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Country whose products from merchant's inventory should be included.
     string sales_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
   }

+  // The raise target CPA bid too low recommendation.
+  message RaiseTargetCpaBidTooLowRecommendation {
+    // Output only. A number greater than 1.0 indicating the factor by which we recommend the
+    // target CPA should be increased.
+    optional double recommended_target_multiplier = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. The current average target CPA of the campaign, in micros of customer
+    // local currency.
+    optional int64 average_target_cpa_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+  }
+
   // The Display Expansion opt-in recommendation.
   message DisplayExpansionOptInRecommendation {

   }

   // The Upgrade Local campaign to Performance Max campaign recommendation.
   message UpgradeLocalCampaignToPerformanceMaxRecommendation {

   }

+  // The forecasting set target ROAS recommendation.
+  message ForecastingSetTargetRoasRecommendation {
+    // Output only. The recommended target ROAS (revenue per unit of spend).
+    // The value is between 0.01 and 1000.0, inclusive.
+    double recommended_target_roas = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. The campaign budget.
+    CampaignBudget campaign_budget = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+  }
+
+  // A campaign budget shared amongst various budget recommendation types.
+  message CampaignBudget {
+    // Output only. Current budget amount.
+    int64 current_amount_micros = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. Recommended budget amount.
+    int64 recommended_new_amount_micros = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. The date when the new budget would start being used.
+    // This field will be set for the following recommendation types:
+    // FORECASTING_SET_TARGET_ROAS. YYYY-MM-DD format, for example, 2018-04-17.
+    string new_start_date = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
+  }
+
   // Immutable. The resource name of the recommendation.
   //
   // `customers/{customer_id}/recommendations/{recommendation_id}`
   string resource_name = 1 [
     (google.api.field_behavior) = IMMUTABLE,
     (google.api.resource_reference) = {
       type: "googleads.googleapis.com/Recommendation"
     }
   ];

   // Output only. The type of recommendation.
-  google.ads.googleads.v11.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+  google.ads.googleads.v12.enums.RecommendationTypeEnum.RecommendationType type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];

   // Output only. The impact on account performance as a result of applying the
   // recommendation.
   RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY];

   // Output only. The budget targeted by this recommendation. This will be set only when
   // the recommendation affects a single campaign budget.
   //
   // This field will be set for the following recommendation types:
   // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET,
   // MOVE_UNUSED_BUDGET
   optional string campaign_budget = 24 [
     (google.api.field_behavior) = OUTPUT_ONLY,
     (google.api.resource_reference) = {
       type: "googleads.googleapis.com/CampaignBudget"
     }
   ];

   // Output only. The campaign targeted by this recommendation. This will be set only when
   // the recommendation affects a single campaign.
   //
   // This field will be set for the following recommendation types:
   // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN,
   // USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE,
   // UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN,
   // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION,
   // RESPONSIVE_SEARCH_AD,
   // RESPONSIVE_SEARCH_AD_ASSET,
   // SEARCH_PARTNERS_OPT_IN,
   // DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION, TARGET_CPA_OPT_IN,
   // TARGET_ROAS_OPT_IN, TEXT_AD,
-  // UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX
+  // UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX ,
+  // RAISE_TARGET_CPA_BID_TOO_LOW, FORECASTING_SET_TARGET_ROAS
   optional string campaign = 25 [
     (google.api.field_behavior) = OUTPUT_ONLY,
     (google.api.resource_reference) = {
       type: "googleads.googleapis.com/Campaign"
     }
   ];

   // Output only. The ad group targeted by this recommendation. This will be set only when
   // the recommendation affects a single ad group.
   //
   // This field will be set for the following recommendation types:
   // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD,
   // RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD
   optional string ad_group = 26 [
     (google.api.field_behavior) = OUTPUT_ONLY,
     (google.api.resource_reference) = {
       type: "googleads.googleapis.com/AdGroup"
     }
   ];

   // Output only. Whether the recommendation is dismissed or not.
   optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY];

   // The details of recommendation.
   oneof recommendation {
     // Output only. The campaign budget recommendation.
     CampaignBudgetRecommendation campaign_budget_recommendation = 4 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The forecasting campaign budget recommendation.
     CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The keyword recommendation.
     KeywordRecommendation keyword_recommendation = 8 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. Add expanded text ad recommendation.
     TextAdRecommendation text_ad_recommendation = 9 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The TargetCPA opt-in recommendation.
     TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The MaximizeConversions Opt-In recommendation.
     MaximizeConversionsOptInRecommendation maximize_conversions_opt_in_recommendation = 11 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Enhanced Cost-Per-Click Opt-In recommendation.
     EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Search Partners Opt-In recommendation.
     SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The MaximizeClicks Opt-In recommendation.
     MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Optimize Ad Rotation recommendation.
     OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Callout extension recommendation.
     CalloutExtensionRecommendation callout_extension_recommendation = 17 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Sitelink extension recommendation.
     SitelinkExtensionRecommendation sitelink_extension_recommendation = 18 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Call extension recommendation.
     CallExtensionRecommendation call_extension_recommendation = 19 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The keyword match type recommendation.
     KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The move unused budget recommendation.
     MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Target ROAS opt-in recommendation.
     TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The add responsive search ad recommendation.
     ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The marginal ROI campaign budget recommendation.
     CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation = 29 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The use broad match keyword recommendation.
     UseBroadMatchKeywordRecommendation use_broad_match_keyword_recommendation = 30 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The responsive search ad asset recommendation.
     ResponsiveSearchAdAssetRecommendation responsive_search_ad_asset_recommendation = 31 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The upgrade a Smart Shopping campaign to a Performance Max campaign
     // recommendation.
     UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation upgrade_smart_shopping_campaign_to_performance_max_recommendation = 32 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The responsive search ad improve ad strength recommendation.
     ResponsiveSearchAdImproveAdStrengthRecommendation responsive_search_ad_improve_ad_strength_recommendation = 33 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The Display Expansion opt-in recommendation.
     DisplayExpansionOptInRecommendation display_expansion_opt_in_recommendation = 34 [(google.api.field_behavior) = OUTPUT_ONLY];

     // Output only. The upgrade a Local campaign to a Performance Max campaign
     // recommendation.
     UpgradeLocalCampaignToPerformanceMaxRecommendation upgrade_local_campaign_to_performance_max_recommendation = 35 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. The raise target CPA bid too low recommendation.
+    RaiseTargetCpaBidTooLowRecommendation raise_target_cpa_bid_too_low_recommendation = 36 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Output only. The forecasting set target ROAS recommendation.
+    ForecastingSetTargetRoasRecommendation forecasting_set_target_roas_recommendation = 37 [(google.api.field_behavior) = OUTPUT_ONLY];
   }
 }