• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.v15.resources;
18
19import "google/ads/googleads/v15/common/criteria.proto";
20import "google/ads/googleads/v15/enums/app_bidding_goal.proto";
21import "google/ads/googleads/v15/enums/keyword_match_type.proto";
22import "google/ads/googleads/v15/enums/recommendation_type.proto";
23import "google/ads/googleads/v15/enums/shopping_add_products_to_campaign_recommendation_enum.proto";
24import "google/ads/googleads/v15/enums/target_cpa_opt_in_recommendation_goal.proto";
25import "google/ads/googleads/v15/resources/ad.proto";
26import "google/ads/googleads/v15/resources/asset.proto";
27import "google/api/field_behavior.proto";
28import "google/api/resource.proto";
29
30option csharp_namespace = "Google.Ads.GoogleAds.V15.Resources";
31option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v15/resources;resources";
32option java_multiple_files = true;
33option java_outer_classname = "RecommendationProto";
34option java_package = "com.google.ads.googleads.v15.resources";
35option objc_class_prefix = "GAA";
36option php_namespace = "Google\\Ads\\GoogleAds\\V15\\Resources";
37option ruby_package = "Google::Ads::GoogleAds::V15::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.v15.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.v15.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.v15.common.KeywordInfo keyword = 1
256        [(google.api.field_behavior) = OUTPUT_ONLY];
257
258    // Output only. The recommended new match type.
259    google.ads.googleads.v15.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.v15.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.v15.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.v15.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 , FORECASTING_SET_TARGET_CPA
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  // The set target CPA recommendations.
545  message ForecastingSetTargetCpaRecommendation {
546    // Output only. The recommended target CPA.
547    int64 recommended_target_cpa_micros = 1
548        [(google.api.field_behavior) = OUTPUT_ONLY];
549
550    // Output only. The campaign budget.
551    CampaignBudget campaign_budget = 2
552        [(google.api.field_behavior) = OUTPUT_ONLY];
553  }
554
555  // Immutable. The resource name of the recommendation.
556  //
557  // `customers/{customer_id}/recommendations/{recommendation_id}`
558  string resource_name = 1 [
559    (google.api.field_behavior) = IMMUTABLE,
560    (google.api.resource_reference) = {
561      type: "googleads.googleapis.com/Recommendation"
562    }
563  ];
564
565  // Output only. The type of recommendation.
566  google.ads.googleads.v15.enums.RecommendationTypeEnum.RecommendationType
567      type = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
568
569  // Output only. The impact on account performance as a result of applying the
570  // recommendation.
571  RecommendationImpact impact = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
572
573  // Output only. The budget targeted by this recommendation. This will be set
574  // only when the recommendation affects a single campaign budget.
575  //
576  // This field will be set for the following recommendation types:
577  // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET, MARGINAL_ROI_CAMPAIGN_BUDGET,
578  // MOVE_UNUSED_BUDGET
579  optional string campaign_budget = 24 [
580    (google.api.field_behavior) = OUTPUT_ONLY,
581    (google.api.resource_reference) = {
582      type: "googleads.googleapis.com/CampaignBudget"
583    }
584  ];
585
586  // Output only. The campaign targeted by this recommendation.
587  //
588  // This field will be set for the following recommendation types:
589  // CALL_EXTENSION, CALLOUT_EXTENSION, ENHANCED_CPC_OPT_IN,
590  // USE_BROAD_MATCH_KEYWORD, KEYWORD, KEYWORD_MATCH_TYPE,
591  // UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX, MAXIMIZE_CLICKS_OPT_IN,
592  // MAXIMIZE_CONVERSIONS_OPT_IN, OPTIMIZE_AD_ROTATION,
593  // RESPONSIVE_SEARCH_AD,
594  // RESPONSIVE_SEARCH_AD_ASSET,
595  // SEARCH_PARTNERS_OPT_IN, DISPLAY_EXPANSION_OPT_IN, SITELINK_EXTENSION,
596  // TARGET_CPA_OPT_IN, TARGET_ROAS_OPT_IN, TEXT_AD,
597  // UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX,
598  // RAISE_TARGET_CPA_BID_TOO_LOW, FORECASTING_SET_TARGET_ROAS,
599  // SHOPPING_ADD_AGE_GROUP, SHOPPING_ADD_COLOR, SHOPPING_ADD_GENDER,
600  // SHOPPING_ADD_SIZE, SHOPPING_ADD_GTIN, SHOPPING_ADD_MORE_IDENTIFIERS,
601  // SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN, SHOPPING_FIX_DISAPPROVED_PRODUCTS,
602  // SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX,
603  // DYNAMIC_IMAGE_EXTENSION_OPT_IN, RAISE_TARGET_CPA, LOWER_TARGET_ROAS,
604  // FORECASTING_SET_TARGET_CPA,
605  // SET_TARGET_CPA, SET_TARGET_ROAS
606  optional string campaign = 25 [
607    (google.api.field_behavior) = OUTPUT_ONLY,
608    (google.api.resource_reference) = {
609      type: "googleads.googleapis.com/Campaign"
610    }
611  ];
612
613  // Output only. The ad group targeted by this recommendation. This will be set
614  // only when the recommendation affects a single ad group.
615  //
616  // This field will be set for the following recommendation types:
617  // KEYWORD, OPTIMIZE_AD_ROTATION, RESPONSIVE_SEARCH_AD,
618  // RESPONSIVE_SEARCH_AD_ASSET, TEXT_AD
619  optional string ad_group = 26 [
620    (google.api.field_behavior) = OUTPUT_ONLY,
621    (google.api.resource_reference) = {
622      type: "googleads.googleapis.com/AdGroup"
623    }
624  ];
625
626  // Output only. Whether the recommendation is dismissed or not.
627  optional bool dismissed = 27 [(google.api.field_behavior) = OUTPUT_ONLY];
628
629  // Output only. The campaigns targeted by this recommendation.
630  //
631  // This field will be set for the following recommendation types:
632  // CAMPAIGN_BUDGET, FORECASTING_CAMPAIGN_BUDGET,
633  // MARGINAL_ROI_CAMPAIGN_BUDGET and MOVE_UNUSED_BUDGET
634  repeated string campaigns = 38 [
635    (google.api.field_behavior) = OUTPUT_ONLY,
636    (google.api.resource_reference) = {
637      type: "googleads.googleapis.com/Campaign"
638    }
639  ];
640
641  // The details of recommendation.
642  oneof recommendation {
643    // Output only. The campaign budget recommendation.
644    CampaignBudgetRecommendation campaign_budget_recommendation = 4
645        [(google.api.field_behavior) = OUTPUT_ONLY];
646
647    // Output only. The forecasting campaign budget recommendation.
648    CampaignBudgetRecommendation forecasting_campaign_budget_recommendation = 22
649        [(google.api.field_behavior) = OUTPUT_ONLY];
650
651    // Output only. The keyword recommendation.
652    KeywordRecommendation keyword_recommendation = 8
653        [(google.api.field_behavior) = OUTPUT_ONLY];
654
655    // Output only. Add expanded text ad recommendation.
656    TextAdRecommendation text_ad_recommendation = 9
657        [(google.api.field_behavior) = OUTPUT_ONLY];
658
659    // Output only. The TargetCPA opt-in recommendation.
660    TargetCpaOptInRecommendation target_cpa_opt_in_recommendation = 10
661        [(google.api.field_behavior) = OUTPUT_ONLY];
662
663    // Output only. The MaximizeConversions Opt-In recommendation.
664    MaximizeConversionsOptInRecommendation
665        maximize_conversions_opt_in_recommendation = 11
666        [(google.api.field_behavior) = OUTPUT_ONLY];
667
668    // Output only. The Enhanced Cost-Per-Click Opt-In recommendation.
669    EnhancedCpcOptInRecommendation enhanced_cpc_opt_in_recommendation = 12
670        [(google.api.field_behavior) = OUTPUT_ONLY];
671
672    // Output only. The Search Partners Opt-In recommendation.
673    SearchPartnersOptInRecommendation search_partners_opt_in_recommendation = 14
674        [(google.api.field_behavior) = OUTPUT_ONLY];
675
676    // Output only. The MaximizeClicks Opt-In recommendation.
677    MaximizeClicksOptInRecommendation maximize_clicks_opt_in_recommendation = 15
678        [(google.api.field_behavior) = OUTPUT_ONLY];
679
680    // Output only. The Optimize Ad Rotation recommendation.
681    OptimizeAdRotationRecommendation optimize_ad_rotation_recommendation = 16
682        [(google.api.field_behavior) = OUTPUT_ONLY];
683
684    // Output only. The keyword match type recommendation.
685    KeywordMatchTypeRecommendation keyword_match_type_recommendation = 20
686        [(google.api.field_behavior) = OUTPUT_ONLY];
687
688    // Output only. The move unused budget recommendation.
689    MoveUnusedBudgetRecommendation move_unused_budget_recommendation = 21
690        [(google.api.field_behavior) = OUTPUT_ONLY];
691
692    // Output only. The Target ROAS opt-in recommendation.
693    TargetRoasOptInRecommendation target_roas_opt_in_recommendation = 23
694        [(google.api.field_behavior) = OUTPUT_ONLY];
695
696    // Output only. The add responsive search ad recommendation.
697    ResponsiveSearchAdRecommendation responsive_search_ad_recommendation = 28
698        [(google.api.field_behavior) = OUTPUT_ONLY];
699
700    // Output only. The marginal ROI campaign budget recommendation.
701    CampaignBudgetRecommendation marginal_roi_campaign_budget_recommendation =
702        29 [(google.api.field_behavior) = OUTPUT_ONLY];
703
704    // Output only. The use broad match keyword recommendation.
705    UseBroadMatchKeywordRecommendation use_broad_match_keyword_recommendation =
706        30 [(google.api.field_behavior) = OUTPUT_ONLY];
707
708    // Output only. The responsive search ad asset recommendation.
709    ResponsiveSearchAdAssetRecommendation
710        responsive_search_ad_asset_recommendation = 31
711        [(google.api.field_behavior) = OUTPUT_ONLY];
712
713    // Output only. The upgrade a Smart Shopping campaign to a Performance Max
714    // campaign recommendation.
715    UpgradeSmartShoppingCampaignToPerformanceMaxRecommendation
716        upgrade_smart_shopping_campaign_to_performance_max_recommendation = 32
717        [(google.api.field_behavior) = OUTPUT_ONLY];
718
719    // Output only. The responsive search ad improve ad strength recommendation.
720    ResponsiveSearchAdImproveAdStrengthRecommendation
721        responsive_search_ad_improve_ad_strength_recommendation = 33
722        [(google.api.field_behavior) = OUTPUT_ONLY];
723
724    // Output only. The Display Expansion opt-in recommendation.
725    DisplayExpansionOptInRecommendation
726        display_expansion_opt_in_recommendation = 34
727        [(google.api.field_behavior) = OUTPUT_ONLY];
728
729    // Output only. The upgrade a Local campaign to a Performance Max campaign
730    // recommendation.
731    UpgradeLocalCampaignToPerformanceMaxRecommendation
732        upgrade_local_campaign_to_performance_max_recommendation = 35
733        [(google.api.field_behavior) = OUTPUT_ONLY];
734
735    // Output only. The raise target CPA bid too low recommendation.
736    RaiseTargetCpaBidTooLowRecommendation
737        raise_target_cpa_bid_too_low_recommendation = 36
738        [(google.api.field_behavior) = OUTPUT_ONLY];
739
740    // Output only. The forecasting set target ROAS recommendation.
741    ForecastingSetTargetRoasRecommendation
742        forecasting_set_target_roas_recommendation = 37
743        [(google.api.field_behavior) = OUTPUT_ONLY];
744
745    // Output only. The callout asset recommendation.
746    CalloutAssetRecommendation callout_asset_recommendation = 39
747        [(google.api.field_behavior) = OUTPUT_ONLY];
748
749    // Output only. The sitelink asset recommendation.
750    SitelinkAssetRecommendation sitelink_asset_recommendation = 40
751        [(google.api.field_behavior) = OUTPUT_ONLY];
752
753    // Output only. The call asset recommendation.
754    CallAssetRecommendation call_asset_recommendation = 41
755        [(google.api.field_behavior) = OUTPUT_ONLY];
756
757    // Output only. The shopping add age group recommendation.
758    ShoppingOfferAttributeRecommendation shopping_add_age_group_recommendation =
759        42 [(google.api.field_behavior) = OUTPUT_ONLY];
760
761    // Output only. The shopping add color recommendation.
762    ShoppingOfferAttributeRecommendation shopping_add_color_recommendation = 43
763        [(google.api.field_behavior) = OUTPUT_ONLY];
764
765    // Output only. The shopping add gender recommendation.
766    ShoppingOfferAttributeRecommendation shopping_add_gender_recommendation = 44
767        [(google.api.field_behavior) = OUTPUT_ONLY];
768
769    // Output only. The shopping add GTIN recommendation.
770    ShoppingOfferAttributeRecommendation shopping_add_gtin_recommendation = 45
771        [(google.api.field_behavior) = OUTPUT_ONLY];
772
773    // Output only. The shopping add more identifiers recommendation.
774    ShoppingOfferAttributeRecommendation
775        shopping_add_more_identifiers_recommendation = 46
776        [(google.api.field_behavior) = OUTPUT_ONLY];
777
778    // Output only. The shopping add size recommendation.
779    ShoppingOfferAttributeRecommendation shopping_add_size_recommendation = 47
780        [(google.api.field_behavior) = OUTPUT_ONLY];
781
782    // Output only. The shopping add products to campaign recommendation.
783    ShoppingAddProductsToCampaignRecommendation
784        shopping_add_products_to_campaign_recommendation = 48
785        [(google.api.field_behavior) = OUTPUT_ONLY];
786
787    // Output only. The shopping fix disapproved products recommendation.
788    ShoppingFixDisapprovedProductsRecommendation
789        shopping_fix_disapproved_products_recommendation = 49
790        [(google.api.field_behavior) = OUTPUT_ONLY];
791
792    // Output only. The shopping target all offers recommendation.
793    ShoppingTargetAllOffersRecommendation
794        shopping_target_all_offers_recommendation = 50
795        [(google.api.field_behavior) = OUTPUT_ONLY];
796
797    // Output only. The shopping fix suspended Merchant Center account
798    // recommendation.
799    ShoppingMerchantCenterAccountSuspensionRecommendation
800        shopping_fix_suspended_merchant_center_account_recommendation = 51
801        [(google.api.field_behavior) = OUTPUT_ONLY];
802
803    // Output only. The shopping fix Merchant Center account suspension warning
804    // recommendation.
805    ShoppingMerchantCenterAccountSuspensionRecommendation
806        shopping_fix_merchant_center_account_suspension_warning_recommendation =
807            52 [(google.api.field_behavior) = OUTPUT_ONLY];
808
809    // Output only. The shopping migrate Regular Shopping Campaign offers to
810    // Performance Max recommendation.
811    ShoppingMigrateRegularShoppingCampaignOffersToPerformanceMaxRecommendation
812        shopping_migrate_regular_shopping_campaign_offers_to_performance_max_recommendation =
813            53 [(google.api.field_behavior) = OUTPUT_ONLY];
814
815    // Output only. Recommendation to enable dynamic image extensions on the
816    // account, allowing Google to find the best images from ad landing pages
817    // and complement text ads.
818    DynamicImageExtensionOptInRecommendation
819        dynamic_image_extension_opt_in_recommendation = 54
820        [(google.api.field_behavior) = OUTPUT_ONLY];
821
822    // Output only. Recommendation to raise Target CPA.
823    RaiseTargetCpaRecommendation raise_target_cpa_recommendation = 55
824        [(google.api.field_behavior) = OUTPUT_ONLY];
825
826    // Output only. Recommendation to lower Target ROAS.
827    LowerTargetRoasRecommendation lower_target_roas_recommendation = 56
828        [(google.api.field_behavior) = OUTPUT_ONLY];
829
830    // Output only. The Performance Max Opt In recommendation.
831    PerformanceMaxOptInRecommendation performance_max_opt_in_recommendation = 57
832        [(google.api.field_behavior) = OUTPUT_ONLY];
833
834    // Output only. The improve Performance Max ad strength recommendation.
835    ImprovePerformanceMaxAdStrengthRecommendation
836        improve_performance_max_ad_strength_recommendation = 58
837        [(google.api.field_behavior) = OUTPUT_ONLY];
838
839    // Output only. The Dynamic Search Ads to Performance Max migration
840    // recommendation.
841    MigrateDynamicSearchAdsCampaignToPerformanceMaxRecommendation
842        migrate_dynamic_search_ads_campaign_to_performance_max_recommendation =
843            59 [(google.api.field_behavior) = OUTPUT_ONLY];
844
845    // Output only. The forecasting set target CPA recommendation.
846    ForecastingSetTargetCpaRecommendation
847        forecasting_set_target_cpa_recommendation = 60
848        [(google.api.field_behavior) = OUTPUT_ONLY];
849
850    // Output only. The set target CPA recommendation.
851    ForecastingSetTargetCpaRecommendation set_target_cpa_recommendation = 61
852        [(google.api.field_behavior) = OUTPUT_ONLY];
853
854    // Output only. The set target ROAS recommendation.
855    ForecastingSetTargetRoasRecommendation set_target_roas_recommendation = 62
856        [(google.api.field_behavior) = OUTPUT_ONLY];
857  }
858}
859