xref: /aosp_15_r20/external/googleapis/google/ads/googleads/v14/resources/recommendation.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.ads.googleads.v14.resources;
18
19import "google/ads/googleads/v14/common/criteria.proto";
20import "google/ads/googleads/v14/enums/app_bidding_goal.proto";
21import "google/ads/googleads/v14/enums/keyword_match_type.proto";
22import "google/ads/googleads/v14/enums/recommendation_type.proto";
23import "google/ads/googleads/v14/enums/shopping_add_products_to_campaign_recommendation_enum.proto";
24import "google/ads/googleads/v14/enums/target_cpa_opt_in_recommendation_goal.proto";
25import "google/ads/googleads/v14/resources/ad.proto";
26import "google/ads/googleads/v14/resources/asset.proto";
27import "google/api/field_behavior.proto";
28import "google/api/resource.proto";
29
30option csharp_namespace = "Google.Ads.GoogleAds.V14.Resources";
31option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v14/resources;resources";
32option java_multiple_files = true;
33option java_outer_classname = "RecommendationProto";
34option java_package = "com.google.ads.googleads.v14.resources";
35option objc_class_prefix = "GAA";
36option php_namespace = "Google\\Ads\\GoogleAds\\V14\\Resources";
37option ruby_package = "Google::Ads::GoogleAds::V14::Resources";
38
39// Proto file describing the Recommendation resource.
40
41// A recommendation.
42message Recommendation {
43  option (google.api.resource) = {
44    type: "googleads.googleapis.com/Recommendation"
45    pattern: "customers/{customer_id}/recommendations/{recommendation_id}"
46  };
47
48  // The Merchant Center account details.
49  message MerchantInfo {
50    // Output only. The Merchant Center account ID.
51    int64 id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
52
53    // Output only. The name of the Merchant Center account.
54    string name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
55
56    // Output only. Whether the Merchant Center account is a Multi-Client
57    // account (MCA).
58    bool multi_client = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
59  }
60
61  // The impact of making the change as described in the recommendation.
62  // Some types of recommendations may not have impact information.
63  message RecommendationImpact {
64    // Output only. Base metrics at the time the recommendation was generated.
65    RecommendationMetrics base_metrics = 1
66        [(google.api.field_behavior) = OUTPUT_ONLY];
67
68    // Output only. Estimated metrics if the recommendation is applied.
69    RecommendationMetrics potential_metrics = 2
70        [(google.api.field_behavior) = OUTPUT_ONLY];
71  }
72
73  // Weekly account performance metrics. For some recommendation types, these
74  // are averaged over the past 90-day period and hence can be fractional.
75  message RecommendationMetrics {
76    // Output only. Number of ad impressions.
77    optional double impressions = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
78
79    // Output only. Number of ad clicks.
80    optional double clicks = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
81
82    // Output only. Cost (in micros) for advertising, in the local currency for
83    // the account.
84    optional int64 cost_micros = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
85
86    // Output only. Number of conversions.
87    optional double conversions = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
88
89    // Output only. Number of video views for a video ad campaign.
90    optional double video_views = 10
91        [(google.api.field_behavior) = OUTPUT_ONLY];
92  }
93
94  // The budget recommendation for budget constrained campaigns.
95  message CampaignBudgetRecommendation {
96    // The impact estimates for a given budget amount.
97    message CampaignBudgetRecommendationOption {
98      // Output only. The budget amount for this option.
99      optional int64 budget_amount_micros = 3
100          [(google.api.field_behavior) = OUTPUT_ONLY];
101
102      // Output only. The impact estimate if budget is changed to amount
103      // specified in this option.
104      RecommendationImpact impact = 2
105          [(google.api.field_behavior) = OUTPUT_ONLY];
106    }
107
108    // Output only. The current budget amount in micros.
109    optional int64 current_budget_amount_micros = 7
110        [(google.api.field_behavior) = OUTPUT_ONLY];
111
112    // Output only. The recommended budget amount in micros.
113    optional int64 recommended_budget_amount_micros = 8
114        [(google.api.field_behavior) = OUTPUT_ONLY];
115
116    // Output only. The budget amounts and associated impact estimates for some
117    // values of possible budget amounts.
118    repeated CampaignBudgetRecommendationOption budget_options = 3
119        [(google.api.field_behavior) = OUTPUT_ONLY];
120  }
121
122  // The keyword recommendation.
123  message KeywordRecommendation {
124    // Information about a search term as related to a keyword recommendation.
125    message SearchTerm {
126      // Output only. The text of the search term.
127      string text = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
128
129      // Output only. Estimated number of historical weekly searches for this
130      // search term.
131      int64 estimated_weekly_search_count = 2
132          [(google.api.field_behavior) = OUTPUT_ONLY];
133    }
134
135    // Output only. The recommended keyword.
136    google.ads.googleads.v14.common.KeywordInfo keyword = 1
137        [(google.api.field_behavior) = OUTPUT_ONLY];
138
139    // Output only. A list of search terms this keyword matches. The same search
140    // term may be repeated for multiple keywords.
141    repeated SearchTerm search_terms = 4
142        [(google.api.field_behavior) = OUTPUT_ONLY];
143
144    // Output only. The recommended CPC (cost-per-click) bid.
145    optional int64 recommended_cpc_bid_micros = 3
146        [(google.api.field_behavior) = OUTPUT_ONLY];
147  }
148
149  // The text ad recommendation.
150  message TextAdRecommendation {
151    // Output only. Recommended ad.
152    Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
153
154    // Output only. Creation date of the recommended ad.
155    // YYYY-MM-DD format, for example, 2018-04-17.
156    optional string creation_date = 4
157        [(google.api.field_behavior) = OUTPUT_ONLY];
158
159    // Output only. Date, if present, is the earliest when the recommendation
160    // will be auto applied. YYYY-MM-DD format, for example, 2018-04-17.
161    optional string auto_apply_date = 5
162        [(google.api.field_behavior) = OUTPUT_ONLY];
163  }
164
165  // The Target CPA opt-in recommendation.
166  message TargetCpaOptInRecommendation {
167    // The Target CPA opt-in option with impact estimate.
168    message TargetCpaOptInRecommendationOption {
169      // Output only. The goal achieved by this option.
170      google.ads.googleads.v14.enums.TargetCpaOptInRecommendationGoalEnum
171          .TargetCpaOptInRecommendationGoal goal = 1
172          [(google.api.field_behavior) = OUTPUT_ONLY];
173
174      // Output only. Average CPA target.
175      optional int64 target_cpa_micros = 5
176          [(google.api.field_behavior) = OUTPUT_ONLY];
177
178      // Output only. The minimum campaign budget, in local currency for the
179      // account, required to achieve the target CPA. Amount is specified in
180      // micros, where one million is equivalent to one currency unit.
181      optional int64 required_campaign_budget_amount_micros = 6
182          [(google.api.field_behavior) = OUTPUT_ONLY];
183
184      // Output only. The impact estimate if this option is selected.
185      RecommendationImpact impact = 4
186          [(google.api.field_behavior) = OUTPUT_ONLY];
187    }
188
189    // Output only. The available goals and corresponding options for Target CPA
190    // strategy.
191    repeated TargetCpaOptInRecommendationOption options = 1
192        [(google.api.field_behavior) = OUTPUT_ONLY];
193
194    // Output only. The recommended average CPA target. See required budget
195    // amount and impact of using this recommendation in options list.
196    optional int64 recommended_target_cpa_micros = 3
197        [(google.api.field_behavior) = OUTPUT_ONLY];
198  }
199
200  // The Maximize Conversions Opt-In recommendation.
201  message MaximizeConversionsOptInRecommendation {
202    // Output only. The recommended new budget amount.
203    optional int64 recommended_budget_amount_micros = 2
204        [(google.api.field_behavior) = OUTPUT_ONLY];
205  }
206
207  // The Enhanced Cost-Per-Click Opt-In recommendation.
208  message EnhancedCpcOptInRecommendation {}
209
210  // The Search Partners Opt-In recommendation.
211  message SearchPartnersOptInRecommendation {}
212
213  // The Maximize Clicks opt-in recommendation.
214  message MaximizeClicksOptInRecommendation {
215    // Output only. The recommended new budget amount.
216    // Only set if the current budget is too high.
217    optional int64 recommended_budget_amount_micros = 2
218        [(google.api.field_behavior) = OUTPUT_ONLY];
219  }
220
221  // The Optimize Ad Rotation recommendation.
222  message OptimizeAdRotationRecommendation {}
223
224  // The callout asset recommendation.
225  message CalloutAssetRecommendation {
226    // Output only. New callout extension assets recommended at the campaign
227    // level.
228    repeated Asset recommended_campaign_callout_assets = 1
229        [(google.api.field_behavior) = OUTPUT_ONLY];
230
231    // Output only. New callout extension assets recommended at the customer
232    // level.
233    repeated Asset recommended_customer_callout_assets = 2
234        [(google.api.field_behavior) = OUTPUT_ONLY];
235  }
236
237  // The sitelink asset recommendation.
238  message SitelinkAssetRecommendation {
239    // Output only. New sitelink assets recommended at the campaign level.
240    repeated Asset recommended_campaign_sitelink_assets = 1
241        [(google.api.field_behavior) = OUTPUT_ONLY];
242
243    // Output only. New sitelink assets recommended at the customer level.
244    repeated Asset recommended_customer_sitelink_assets = 2
245        [(google.api.field_behavior) = OUTPUT_ONLY];
246  }
247
248  // The call asset recommendation.
249  message CallAssetRecommendation {}
250
251  // The keyword match type recommendation.
252  message KeywordMatchTypeRecommendation {
253    // Output only. The existing keyword where the match type should be more
254    // broad.
255    google.ads.googleads.v14.common.KeywordInfo keyword = 1
256        [(google.api.field_behavior) = OUTPUT_ONLY];
257
258    // Output only. The recommended new match type.
259    google.ads.googleads.v14.enums.KeywordMatchTypeEnum.KeywordMatchType
260        recommended_match_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
261  }
262
263  // The move unused budget recommendation.
264  message MoveUnusedBudgetRecommendation {
265    // Output only. The excess budget's resource_name.
266    optional string excess_campaign_budget = 3
267        [(google.api.field_behavior) = OUTPUT_ONLY];
268
269    // Output only. The recommendation for the constrained budget to increase.
270    CampaignBudgetRecommendation budget_recommendation = 2
271        [(google.api.field_behavior) = OUTPUT_ONLY];
272  }
273
274  // The Target ROAS opt-in recommendation.
275  message TargetRoasOptInRecommendation {
276    // Output only. The recommended target ROAS (revenue per unit of spend).
277    // The value is between 0.01 and 1000.0, inclusive.
278    optional double recommended_target_roas = 1
279        [(google.api.field_behavior) = OUTPUT_ONLY];
280
281    // Output only. The minimum campaign budget, in local currency for the
282    // account, required to achieve the target ROAS. Amount is specified in
283    // micros, where one million is equivalent to one currency unit.
284    optional int64 required_campaign_budget_amount_micros = 2
285        [(google.api.field_behavior) = OUTPUT_ONLY];
286  }
287
288  // The add responsive search ad asset recommendation.
289  message ResponsiveSearchAdAssetRecommendation {
290    // Output only. The current ad to be updated.
291    Ad current_ad = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
292
293    // Output only. The recommended assets. This is populated only with the new
294    // headlines and/or descriptions, and is otherwise empty.
295    Ad recommended_assets = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
296  }
297
298  // The responsive search ad improve ad strength recommendation.
299  message ResponsiveSearchAdImproveAdStrengthRecommendation {
300    // Output only. The current ad to be updated.
301    Ad current_ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
302
303    // Output only. The updated ad.
304    Ad recommended_ad = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
305  }
306
307  // The add responsive search ad recommendation.
308  message ResponsiveSearchAdRecommendation {
309    // Output only. Recommended ad.
310    Ad ad = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
311  }
312
313  // The use broad match keyword recommendation.
314  message UseBroadMatchKeywordRecommendation {
315    // Output only. Sample of keywords to be expanded to Broad Match.
316    repeated google.ads.googleads.v14.common.KeywordInfo keyword = 1
317        [(google.api.field_behavior) = OUTPUT_ONLY];
318
319    // Output only. Total number of keywords to be expanded to Broad Match in
320    // the campaign.
321    int64 suggested_keywords_count = 2
322        [(google.api.field_behavior) = OUTPUT_ONLY];
323
324    // Output only. Total number of keywords in the campaign.
325    int64 campaign_keywords_count = 3
326        [(google.api.field_behavior) = OUTPUT_ONLY];
327
328    // Output only. Whether the associated campaign uses a shared budget.
329    bool campaign_uses_shared_budget = 4
330        [(google.api.field_behavior) = OUTPUT_ONLY];
331
332    // Output only. The budget recommended to avoid becoming budget constrained
333    // after applying the recommendation.
334    int64 required_campaign_budget_amount_micros = 5
335        [(google.api.field_behavior) = OUTPUT_ONLY];
336  }
337
338  // The upgrade a Smart Shopping campaign to a Performance Max campaign
339  // recommendation.
340  message UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation {
341    // Output only. ID of Merchant Center account.
342    int64 merchant_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
343
344    // Output only. Country whose products from merchant's inventory should be
345    // included.
346    string sales_country_code = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
347  }
348
349  // The raise target CPA bid too low recommendation.
350  message RaiseTargetCpaBidTooLowRecommendation {
351    // Output only. A number greater than 1.0 indicating the factor by which we
352    // recommend the target CPA should be increased.
353    optional double recommended_target_multiplier = 1
354        [(google.api.field_behavior) = OUTPUT_ONLY];
355
356    // Output only. The current average target CPA of the campaign, in micros of
357    // customer local currency.
358    optional int64 average_target_cpa_micros = 2
359        [(google.api.field_behavior) = OUTPUT_ONLY];
360  }
361
362  // The Display Expansion opt-in recommendation.
363  message DisplayExpansionOptInRecommendation {}
364
365  // The Upgrade Local campaign to Performance Max campaign recommendation.
366  message UpgradeLocalCampaignToPerformanceMaxRecommendation {}
367
368  // The forecasting set target ROAS recommendation.
369  message ForecastingSetTargetRoasRecommendation {
370    // Output only. The recommended target ROAS (revenue per unit of spend).
371    // The value is between 0.01 and 1000.0, inclusive.
372    double recommended_target_roas = 1
373        [(google.api.field_behavior) = OUTPUT_ONLY];
374
375    // Output only. The campaign budget.
376    CampaignBudget campaign_budget = 2
377        [(google.api.field_behavior) = OUTPUT_ONLY];
378  }
379
380  // The shopping recommendation to add an attribute to offers that are demoted
381  // because it is missing.
382  message ShoppingOfferAttributeRecommendation {
383    // Output only. The details of the Merchant Center account.
384    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
385
386    // Output only. The campaign feed label.
387    string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
388
389    // Output only. The number of online, servable offers.
390    int64 offers_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
391
392    // Output only. The number of online, servable offers that are demoted for
393    // missing attributes. Visit the Merchant Center for more details.
394    int64 demoted_offers_count = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
395  }
396
397  // The shopping recommendation to fix disapproved products in a Shopping
398  // Campaign Inventory.
399  message ShoppingFixDisapprovedProductsRecommendation {
400    // Output only. The details of the Merchant Center account.
401    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
402
403    // Output only. The feed label for the campaign.
404    string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
405
406    // Output only. The number of products of the campaign.
407    int64 products_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
408
409    // Output only. The numbers of products of the campaign that are
410    // disapproved.
411    int64 disapproved_products_count = 4
412        [(google.api.field_behavior) = OUTPUT_ONLY];
413  }
414
415  // The shopping recommendation to create a catch-all campaign that targets all
416  // offers.
417  message ShoppingTargetAllOffersRecommendation {
418    // Output only. The details of the Merchant Center account.
419    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
420
421    // Output only. The number of untargeted offers.
422    int64 untargeted_offers_count = 2
423        [(google.api.field_behavior) = OUTPUT_ONLY];
424
425    // Output only. The offer feed label.
426    string feed_label = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
427  }
428
429  // The shopping recommendation to add products to a Shopping Campaign
430  // Inventory.
431  message ShoppingAddProductsToCampaignRecommendation {
432    // Output only. The details of the Merchant Center account.
433    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
434
435    // Output only. The feed label for the campaign.
436    string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
437
438    // Output only. The reason why no products are attached to the campaign.
439    google.ads.googleads.v14.enums
440        .ShoppingAddProductsToCampaignRecommendationEnum.Reason reason = 3
441        [(google.api.field_behavior) = OUTPUT_ONLY];
442  }
443
444  // The shopping recommendation to fix Merchant Center account suspension
445  // issues.
446  message ShoppingMerchantCenterAccountSuspensionRecommendation {
447    // Output only. The details of the Merchant Center account.
448    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
449
450    // Output only. The feed label of the campaign for which the suspension
451    // happened.
452    string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
453  }
454
455  // The shopping recommendation to migrate Regular Shopping Campaign targeted
456  // offers to Performance Max campaigns.
457  message
458  ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation {
459    // Output only. The details of the Merchant Center account.
460    MerchantInfo merchant = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
461
462    // Output only. The feed label of the offers targeted by the campaigns
463    // sharing this suggestion.
464    string feed_label = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
465  }
466
467  // Information of a target adjustment recommendation.
468  message TargetAdjustmentInfo {
469    // Output only. The shared set resource name of the portfolio bidding
470    // strategy where the target is defined. Only populated if the
471    // recommendation is portfolio level.
472    optional string shared_set = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
473
474    // Output only. The factor by which we recommend the target to be adjusted
475    // by.
476    double recommended_target_multiplier = 2
477        [(google.api.field_behavior) = OUTPUT_ONLY];
478
479    // Output only. The current average target of the campaign or portfolio
480    // targeted by this recommendation.
481    int64 current_average_target_micros = 3
482        [(google.api.field_behavior) = OUTPUT_ONLY];
483  }
484
485  // Recommendation to raise Target CPA.
486  message RaiseTargetCpaRecommendation {
487    // Output only. The relevant information describing the recommended target
488    // adjustment.
489    TargetAdjustmentInfo target_adjustment = 1
490        [(google.api.field_behavior) = OUTPUT_ONLY];
491
492    // Output only. Represents the goal towards which the bidding strategy
493    // should optimize. Only populated for App Campaigns.
494    optional google.ads.googleads.v14.enums.AppBiddingGoalEnum.AppBiddingGoal
495        app_bidding_goal = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
496  }
497
498  // Recommendation to lower Target ROAS.
499  message LowerTargetRoasRecommendation {
500    // Output only. The relevant information describing the recommended target
501    // adjustment.
502    TargetAdjustmentInfo target_adjustment = 1
503        [(google.api.field_behavior) = OUTPUT_ONLY];
504  }
505
506  // Recommendation to enable dynamic image extensions on the account,
507  // allowing Google to find the best images from ad landing pages and
508  // complement text ads.
509  message DynamicImageExtensionOptInRecommendation {}
510
511  // A campaign budget shared amongst various budget recommendation types.
512  message CampaignBudget {
513    // Output only. Current budget amount.
514    int64 current_amount_micros = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
515
516    // Output only. Recommended budget amount.
517    int64 recommended_new_amount_micros = 2
518        [(google.api.field_behavior) = OUTPUT_ONLY];
519
520    // Output only. The date when the new budget would start being used.
521    // This field will be set for the following recommendation types:
522    // FORECASTING_SET_TARGET_ROAS
523    // YYYY-MM-DD format, for example, 2018-04-17.
524    string new_start_date = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
525  }
526
527  // The Performance Max Opt In recommendation.
528  message PerformanceMaxOptInRecommendation {}
529
530  // Recommendation to improve the asset group strength of a Performance Max
531  // campaign to an "Excellent" rating.
532  message ImprovePerformanceMaxAdStrengthRecommendation {
533    // Output only. The asset group resource name.
534    string asset_group = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
535  }
536
537  // The Dynamic Search Ads to Performance Max migration recommendation.
538  message MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation {
539    // Output only. A link to the Google Ads UI where the customer can manually
540    // apply the recommendation.
541    string apply_link = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
542  }
543
544  // Immutable. The resource name of the recommendation.
545  //
546  // `customers/{customer_id}/recommendations/{recommendation_id}`
547  string resource_name = 1 [
548    (google.api.field_behavior) = IMMUTABLE,
549    (google.api.resource_reference) = {
550      type: "googleads.googleapis.com/Recommendation"
551    }
552  ];
553
554  // Output only. The type of recommendation.
555  google.ads.googleads.v14.enums.RecommendationTypeEnum.RecommendationType
556      type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
557
558  // Output only. The impact on account performance as a result of applying the
559  // recommendation.
560  RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
561
562  // Output only. The budget targeted by this recommendation. This will be set
563  // only when the recommendation affects a single campaign budget.
564  //
565  // This field will be set for the following recommendation types:
566  // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET,
567  // MOVE_UNUSED_BUDGET
568  optional string campaign_budget = 24 [
569    (google.api.field_behavior) = OUTPUT_ONLY,
570    (google.api.resource_reference) = {
571      type: "googleads.googleapis.com/CampaignBudget"
572    }
573  ];
574
575  // Output only. The campaign targeted by this recommendation.
576  //
577  // This field will be set for the following recommendation types:
578  // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN,
579  // USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE,
580  // UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN,
581  // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION,
582  // RESPONSIVE_SEARCH_AD,
583  // RESPONSIVE_SEARCH_AD_ASSET,
584  // SEARCH_PARTNERS_OPT_IN, DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION,
585  // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD,
586  // UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX,
587  // RAISE_TARGET_CPA_BID_TOO_LOW, FORECASTING_SET_TARGET_ROAS,
588  // SHOPPING_ADD_AGE_GROUP, SHOPPING_ADD_COLOR, SHOPPING_ADD_GENDER,
589  // SHOPPING_ADD_SIZE, SHOPPING_ADD_GTIN, SHOPPING_ADD_MORE_IDENTIFIERS,
590  // SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN, SHOPPING_FIX_DISAPPROVED_PRODUCTS,
591  // SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX,
592  // DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS,
593  optional string campaign = 25 [
594    (google.api.field_behavior) = OUTPUT_ONLY,
595    (google.api.resource_reference) = {
596      type: "googleads.googleapis.com/Campaign"
597    }
598  ];
599
600  // Output only. The ad group targeted by this recommendation. This will be set
601  // only when the recommendation affects a single ad group.
602  //
603  // This field will be set for the following recommendation types:
604  // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD,
605  // RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD
606  optional string ad_group = 26 [
607    (google.api.field_behavior) = OUTPUT_ONLY,
608    (google.api.resource_reference) = {
609      type: "googleads.googleapis.com/AdGroup"
610    }
611  ];
612
613  // Output only. Whether the recommendation is dismissed or not.
614  optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY];
615
616  // Output only. The campaigns targeted by this recommendation.
617  //
618  // This field will be set for the following recommendation types:
619  // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET,
620  // MARGINAL_ROI_CAMPAIGN_BUDGET and MOVE_UNUSED_BUDGET
621  repeated string campaigns = 38 [
622    (google.api.field_behavior) = OUTPUT_ONLY,
623    (google.api.resource_reference) = {
624      type: "googleads.googleapis.com/Campaign"
625    }
626  ];
627
628  // The details of recommendation.
629  oneof recommendation {
630    // Output only. The campaign budget recommendation.
631    CampaignBudgetRecommendation campaign_budget_recommendation = 4
632        [(google.api.field_behavior) = OUTPUT_ONLY];
633
634    // Output only. The forecasting campaign budget recommendation.
635    CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22
636        [(google.api.field_behavior) = OUTPUT_ONLY];
637
638    // Output only. The keyword recommendation.
639    KeywordRecommendation keyword_recommendation = 8
640        [(google.api.field_behavior) = OUTPUT_ONLY];
641
642    // Output only. Add expanded text ad recommendation.
643    TextAdRecommendation text_ad_recommendation = 9
644        [(google.api.field_behavior) = OUTPUT_ONLY];
645
646    // Output only. The TargetCPA opt-in recommendation.
647    TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10
648        [(google.api.field_behavior) = OUTPUT_ONLY];
649
650    // Output only. The MaximizeConversions Opt-In recommendation.
651    MaximizeConversionsOptInRecommendation
652        maximize_conversions_opt_in_recommendation = 11
653        [(google.api.field_behavior) = OUTPUT_ONLY];
654
655    // Output only. The Enhanced Cost-Per-Click Opt-In recommendation.
656    EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12
657        [(google.api.field_behavior) = OUTPUT_ONLY];
658
659    // Output only. The Search Partners Opt-In recommendation.
660    SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14
661        [(google.api.field_behavior) = OUTPUT_ONLY];
662
663    // Output only. The MaximizeClicks Opt-In recommendation.
664    MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15
665        [(google.api.field_behavior) = OUTPUT_ONLY];
666
667    // Output only. The Optimize Ad Rotation recommendation.
668    OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16
669        [(google.api.field_behavior) = OUTPUT_ONLY];
670
671    // Output only. The keyword match type recommendation.
672    KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20
673        [(google.api.field_behavior) = OUTPUT_ONLY];
674
675    // Output only. The move unused budget recommendation.
676    MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21
677        [(google.api.field_behavior) = OUTPUT_ONLY];
678
679    // Output only. The Target ROAS opt-in recommendation.
680    TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23
681        [(google.api.field_behavior) = OUTPUT_ONLY];
682
683    // Output only. The add responsive search ad recommendation.
684    ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28
685        [(google.api.field_behavior) = OUTPUT_ONLY];
686
687    // Output only. The marginal ROI campaign budget recommendation.
688    CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation =
689        29 [(google.api.field_behavior) = OUTPUT_ONLY];
690
691    // Output only. The use broad match keyword recommendation.
692    UseBroadMatchKeywordRecommendation use_broad_match_keyword_recommendation =
693        30 [(google.api.field_behavior) = OUTPUT_ONLY];
694
695    // Output only. The responsive search ad asset recommendation.
696    ResponsiveSearchAdAssetRecommendation
697        responsive_search_ad_asset_recommendation = 31
698        [(google.api.field_behavior) = OUTPUT_ONLY];
699
700    // Output only. The upgrade a Smart Shopping campaign to a Performance Max
701    // campaign recommendation.
702    UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation
703        upgrade_smart_shopping_campaign_to_performance_max_recommendation = 32
704        [(google.api.field_behavior) = OUTPUT_ONLY];
705
706    // Output only. The responsive search ad improve ad strength recommendation.
707    ResponsiveSearchAdImproveAdStrengthRecommendation
708        responsive_search_ad_improve_ad_strength_recommendation = 33
709        [(google.api.field_behavior) = OUTPUT_ONLY];
710
711    // Output only. The Display Expansion opt-in recommendation.
712    DisplayExpansionOptInRecommendation
713        display_expansion_opt_in_recommendation = 34
714        [(google.api.field_behavior) = OUTPUT_ONLY];
715
716    // Output only. The upgrade a Local campaign to a Performance Max campaign
717    // recommendation.
718    UpgradeLocalCampaignToPerformanceMaxRecommendation
719        upgrade_local_campaign_to_performance_max_recommendation = 35
720        [(google.api.field_behavior) = OUTPUT_ONLY];
721
722    // Output only. The raise target CPA bid too low recommendation.
723    RaiseTargetCpaBidTooLowRecommendation
724        raise_target_cpa_bid_too_low_recommendation = 36
725        [(google.api.field_behavior) = OUTPUT_ONLY];
726
727    // Output only. The forecasting set target ROAS recommendation.
728    ForecastingSetTargetRoasRecommendation
729        forecasting_set_target_roas_recommendation = 37
730        [(google.api.field_behavior) = OUTPUT_ONLY];
731
732    // Output only. The callout asset recommendation.
733    CalloutAssetRecommendation callout_asset_recommendation = 39
734        [(google.api.field_behavior) = OUTPUT_ONLY];
735
736    // Output only. The sitelink asset recommendation.
737    SitelinkAssetRecommendation sitelink_asset_recommendation = 40
738        [(google.api.field_behavior) = OUTPUT_ONLY];
739
740    // Output only. The call asset recommendation.
741    CallAssetRecommendation call_asset_recommendation = 41
742        [(google.api.field_behavior) = OUTPUT_ONLY];
743
744    // Output only. The shopping add age group recommendation.
745    ShoppingOfferAttributeRecommendation shopping_add_age_group_recommendation =
746        42 [(google.api.field_behavior) = OUTPUT_ONLY];
747
748    // Output only. The shopping add color recommendation.
749    ShoppingOfferAttributeRecommendation shopping_add_color_recommendation = 43
750        [(google.api.field_behavior) = OUTPUT_ONLY];
751
752    // Output only. The shopping add gender recommendation.
753    ShoppingOfferAttributeRecommendation shopping_add_gender_recommendation = 44
754        [(google.api.field_behavior) = OUTPUT_ONLY];
755
756    // Output only. The shopping add GTIN recommendation.
757    ShoppingOfferAttributeRecommendation shopping_add_gtin_recommendation = 45
758        [(google.api.field_behavior) = OUTPUT_ONLY];
759
760    // Output only. The shopping add more identifiers recommendation.
761    ShoppingOfferAttributeRecommendation
762        shopping_add_more_identifiers_recommendation = 46
763        [(google.api.field_behavior) = OUTPUT_ONLY];
764
765    // Output only. The shopping add size recommendation.
766    ShoppingOfferAttributeRecommendation shopping_add_size_recommendation = 47
767        [(google.api.field_behavior) = OUTPUT_ONLY];
768
769    // Output only. The shopping add products to campaign recommendation.
770    ShoppingAddProductsToCampaignRecommendation
771        shopping_add_products_to_campaign_recommendation = 48
772        [(google.api.field_behavior) = OUTPUT_ONLY];
773
774    // Output only. The shopping fix disapproved products recommendation.
775    ShoppingFixDisapprovedProductsRecommendation
776        shopping_fix_disapproved_products_recommendation = 49
777        [(google.api.field_behavior) = OUTPUT_ONLY];
778
779    // Output only. The shopping target all offers recommendation.
780    ShoppingTargetAllOffersRecommendation
781        shopping_target_all_offers_recommendation = 50
782        [(google.api.field_behavior) = OUTPUT_ONLY];
783
784    // Output only. The shopping fix suspended Merchant Center account
785    // recommendation.
786    ShoppingMerchantCenterAccountSuspensionRecommendation
787        shopping_fix_suspended_merchant_center_account_recommendation = 51
788        [(google.api.field_behavior) = OUTPUT_ONLY];
789
790    // Output only. The shopping fix Merchant Center account suspension warning
791    // recommendation.
792    ShoppingMerchantCenterAccountSuspensionRecommendation
793        shopping_fix_merchant_center_account_suspension_warning_recommendation =
794            52 [(google.api.field_behavior) = OUTPUT_ONLY];
795
796    // Output only. The shopping migrate Regular Shopping Campaign offers to
797    // Performance Max recommendation.
798    ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation
799        shopping_migrate_regular_shopping_campaign_offers_to_performance_max_recommendation =
800            53 [(google.api.field_behavior) = OUTPUT_ONLY];
801
802    // Output only. Recommendation to enable dynamic image extensions on the
803    // account, allowing Google to find the best images from ad landing pages
804    // and complement text ads.
805    DynamicImageExtensionOptInRecommendation
806        dynamic_image_extension_opt_in_recommendation = 54
807        [(google.api.field_behavior) = OUTPUT_ONLY];
808
809    // Output only. Recommendation to raise Target CPA.
810    RaiseTargetCpaRecommendation raise_target_cpa_recommendation = 55
811        [(google.api.field_behavior) = OUTPUT_ONLY];
812
813    // Output only. Recommendation to lower Target ROAS.
814    LowerTargetRoasRecommendation lower_target_roas_recommendation = 56
815        [(google.api.field_behavior) = OUTPUT_ONLY];
816
817    // Output only. The Performance Max Opt In recommendation.
818    PerformanceMaxOptInRecommendation performance_max_opt_in_recommendation = 57
819        [(google.api.field_behavior) = OUTPUT_ONLY];
820
821    // Output only. The improve Performance Max ad strength recommendation.
822    ImprovePerformanceMaxAdStrengthRecommendation
823        improve_performance_max_ad_strength_recommendation = 58
824        [(google.api.field_behavior) = OUTPUT_ONLY];
825
826    // Output only. The Dynamic Search Ads to Performance Max migration
827    // recommendation.
828    MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation
829        migrate_dynamic_search_ads_campaign_to_performance_max_recommendation =
830            59 [(google.api.field_behavior) = OUTPUT_ONLY];
831  }
832}
833