aboutsummaryrefslogtreecommitdiff
path: root/google/ads/googleads/v16/resources/campaign.proto
blob: fbe324baf03fc1fde1c93c8fcf2442a0b6b2be0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
// Copyright 2023 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.v16.resources;

import "google/ads/googleads/v16/common/bidding.proto";
import "google/ads/googleads/v16/common/custom_parameter.proto";
import "google/ads/googleads/v16/common/frequency_cap.proto";
import "google/ads/googleads/v16/common/real_time_bidding_setting.proto";
import "google/ads/googleads/v16/common/targeting_setting.proto";
import "google/ads/googleads/v16/enums/ad_serving_optimization_status.proto";
import "google/ads/googleads/v16/enums/advertising_channel_sub_type.proto";
import "google/ads/googleads/v16/enums/advertising_channel_type.proto";
import "google/ads/googleads/v16/enums/app_campaign_app_store.proto";
import "google/ads/googleads/v16/enums/app_campaign_bidding_strategy_goal_type.proto";
import "google/ads/googleads/v16/enums/asset_automation_status.proto";
import "google/ads/googleads/v16/enums/asset_automation_type.proto";
import "google/ads/googleads/v16/enums/asset_field_type.proto";
import "google/ads/googleads/v16/enums/asset_set_type.proto";
import "google/ads/googleads/v16/enums/bidding_strategy_system_status.proto";
import "google/ads/googleads/v16/enums/bidding_strategy_type.proto";
import "google/ads/googleads/v16/enums/brand_safety_suitability.proto";
import "google/ads/googleads/v16/enums/campaign_experiment_type.proto";
import "google/ads/googleads/v16/enums/campaign_primary_status.proto";
import "google/ads/googleads/v16/enums/campaign_primary_status_reason.proto";
import "google/ads/googleads/v16/enums/campaign_serving_status.proto";
import "google/ads/googleads/v16/enums/campaign_status.proto";
import "google/ads/googleads/v16/enums/listing_type.proto";
import "google/ads/googleads/v16/enums/location_source_type.proto";
import "google/ads/googleads/v16/enums/negative_geo_target_type.proto";
import "google/ads/googleads/v16/enums/optimization_goal_type.proto";
import "google/ads/googleads/v16/enums/payment_mode.proto";
import "google/ads/googleads/v16/enums/performance_max_upgrade_status.proto";
import "google/ads/googleads/v16/enums/positive_geo_target_type.proto";
import "google/ads/googleads/v16/enums/vanity_pharma_display_url_mode.proto";
import "google/ads/googleads/v16/enums/vanity_pharma_text.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";

option csharp_namespace = "Google.Ads.GoogleAds.V16.Resources";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v16/resources;resources";
option java_multiple_files = true;
option java_outer_classname = "CampaignProto";
option java_package = "com.google.ads.googleads.v16.resources";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V16\\Resources";
option ruby_package = "Google::Ads::GoogleAds::V16::Resources";

// Proto file describing the Campaign resource.

// A campaign.
message Campaign {
  option (google.api.resource) = {
    type: "googleads.googleapis.com/Campaign"
    pattern: "customers/{customer_id}/campaigns/{campaign_id}"
  };

  // Information about a campaign being upgraded to Performance Max.
  message PerformanceMaxUpgrade {
    // Output only. Indicates which Performance Max campaign the campaign is
    // upgraded to.
    string performance_max_campaign = 1 [
      (google.api.field_behavior) = OUTPUT_ONLY,
      (google.api.resource_reference) = {
        type: "googleads.googleapis.com/Campaign"
      }
    ];

    // Output only. Indicates legacy campaign upgraded to Performance Max.
    string pre_upgrade_campaign = 2 [
      (google.api.field_behavior) = OUTPUT_ONLY,
      (google.api.resource_reference) = {
        type: "googleads.googleapis.com/Campaign"
      }
    ];

    // Output only. The upgrade status of a campaign requested to be upgraded to
    // Performance Max.
    google.ads.googleads.v16.enums.PerformanceMaxUpgradeStatusEnum
        .PerformanceMaxUpgradeStatus status = 3
        [(google.api.field_behavior) = OUTPUT_ONLY];
  }

  // The network settings for the campaign.
  message NetworkSettings {
    // Whether ads will be served with google.com search results.
    optional bool target_google_search = 5;

    // Whether ads will be served on partner sites in the Google Search Network
    // (requires `target_google_search` to also be `true`).
    optional bool target_search_network = 6;

    // Whether ads will be served on specified placements in the Google Display
    // Network. Placements are specified using the Placement criterion.
    optional bool target_content_network = 7;

    // Whether ads will be served on the Google Partner Network.
    // This is available only to some select Google partner accounts.
    optional bool target_partner_search_network = 8;

    // Whether ads will be served on YouTube.
    optional bool target_youtube = 9;

    // Whether ads will be served on the Google TV network.
    optional bool target_google_tv_network = 10;
  }

  // Campaign-level settings for hotel ads.
  message HotelSettingInfo {
    // Immutable. The linked Hotel Center account.
    optional int64 hotel_center_id = 2
        [(google.api.field_behavior) = IMMUTABLE];
  }

  // The setting for controlling Dynamic Search Ads (DSA).
  message DynamicSearchAdsSetting {
    // Required. The Internet domain name that this setting represents, for
    // example, "google.com" or "www.google.com".
    string domain_name = 6 [(google.api.field_behavior) = REQUIRED];

    // Required. The language code specifying the language of the domain, for
    // example, "en".
    string language_code = 7 [(google.api.field_behavior) = REQUIRED];

    // Whether the campaign uses advertiser supplied URLs exclusively.
    optional bool use_supplied_urls_only = 8;

    // The list of page feeds associated with the campaign.
    repeated string feeds = 9 [(google.api.resource_reference) = {
      type: "googleads.googleapis.com/Feed"
    }];
  }

  // The setting for Shopping campaigns. Defines the universe of products that
  // can be advertised by the campaign, and how this campaign interacts with
  // other Shopping campaigns.
  message ShoppingSetting {
    // ID of the Merchant Center account.
    // This field is required for create operations. This field is immutable for
    // Shopping campaigns.
    optional int64 merchant_id = 5;

    // Feed label of products to include in the campaign.
    // Only one of feed_label or sales_country can be set.
    // If used instead of sales_country, the feed_label field accepts country
    // codes in the same format for example: 'XX'.
    // Otherwise can be any string used for feed label in Google Merchant
    // Center.
    string feed_label = 10;

    // Priority of the campaign. Campaigns with numerically higher priorities
    // take precedence over those with lower priorities.
    // This field is required for Shopping campaigns, with values between 0 and
    // 2, inclusive.
    // This field is optional for Smart Shopping campaigns, but must be equal to
    // 3 if set.
    optional int32 campaign_priority = 7;

    // Whether to include local products.
    optional bool enable_local = 8;

    // Immutable. Whether to target Vehicle Listing inventory. This field is
    // supported only in Smart Shopping Campaigns. For setting Vehicle Listing
    // inventory in Performance Max campaigns, use `listing_type` instead.
    bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE];

    // Immutable. The ads account IDs of advertising partners cooperating within
    // the campaign.
    repeated int64 advertising_partner_ids = 11
        [(google.api.field_behavior) = IMMUTABLE];

    // Disable the optional product feed. This field is currently supported
    // only for Demand Gen campaigns. See
    // https://support.google.com/google-ads/answer/13721750 to learn more about
    // this feature.
    optional bool disable_product_feed = 12;
  }

  // Campaign-level settings for tracking information.
  message TrackingSetting {
    // Output only. The url used for dynamic tracking.
    optional string tracking_url = 2
        [(google.api.field_behavior) = OUTPUT_ONLY];
  }

  // Represents a collection of settings related to ads geotargeting.
  message GeoTargetTypeSetting {
    // The setting used for positive geotargeting in this particular campaign.
    google.ads.googleads.v16.enums.PositiveGeoTargetTypeEnum
        .PositiveGeoTargetType positive_geo_target_type = 1;

    // The setting used for negative geotargeting in this particular campaign.
    google.ads.googleads.v16.enums.NegativeGeoTargetTypeEnum
        .NegativeGeoTargetType negative_geo_target_type = 2;
  }

  // Campaign setting for local campaigns.
  message LocalCampaignSetting {
    // The location source type for this local campaign.
    google.ads.googleads.v16.enums.LocationSourceTypeEnum.LocationSourceType
        location_source_type = 1;
  }

  // Campaign-level settings for App Campaigns.
  message AppCampaignSetting {
    // Represents the goal which the bidding strategy of this app campaign
    // should optimize towards.
    google.ads.googleads.v16.enums.AppCampaignBiddingStrategyGoalTypeEnum
        .AppCampaignBiddingStrategyGoalType bidding_strategy_goal_type = 1;

    // Immutable. A string that uniquely identifies a mobile application.
    optional string app_id = 4 [(google.api.field_behavior) = IMMUTABLE];

    // Immutable. The application store that distributes this specific app.
    google.ads.googleads.v16.enums.AppCampaignAppStoreEnum.AppCampaignAppStore
        app_store = 3 [(google.api.field_behavior) = IMMUTABLE];
  }

  // Describes how unbranded pharma ads will be displayed.
  message VanityPharma {
    // The display mode for vanity pharma URLs.
    google.ads.googleads.v16.enums.VanityPharmaDisplayUrlModeEnum
        .VanityPharmaDisplayUrlMode vanity_pharma_display_url_mode = 1;

    // The text that will be displayed in display URL of the text ad when
    // website description is the selected display mode for vanity pharma URLs.
    google.ads.googleads.v16.enums.VanityPharmaTextEnum.VanityPharmaText
        vanity_pharma_text = 2;
  }

  // Selective optimization setting for this campaign, which includes a set of
  // conversion actions to optimize this campaign towards.
  // This feature only applies to app campaigns that use MULTI_CHANNEL as
  // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
  // AdvertisingChannelSubType.
  message SelectiveOptimization {
    // The selected set of conversion actions for optimizing this campaign.
    repeated string conversion_actions = 2 [(google.api.resource_reference) = {
      type: "googleads.googleapis.com/ConversionAction"
    }];
  }

  // Optimization goal setting for this campaign, which includes a set of
  // optimization goal types.
  message OptimizationGoalSetting {
    // The list of optimization goal types.
    repeated google.ads.googleads.v16.enums.OptimizationGoalTypeEnum
        .OptimizationGoalType optimization_goal_types = 1;
  }

  // Settings for the audience targeting.
  message AudienceSetting {
    // Immutable. If true, this campaign uses an Audience resource for audience
    // targeting. If false, this campaign may use audience segment criteria
    // instead.
    optional bool use_audience_grouped = 1
        [(google.api.field_behavior) = IMMUTABLE];
  }

  // Settings for LocalServicesCampaign subresource.
  message LocalServicesCampaignSettings {
    // Categorical level bids associated with MANUAL_CPA bidding strategy.
    repeated CategoryBid category_bids = 1;
  }

  // Category bids in LocalServicesReportingCampaignSettings.
  message CategoryBid {
    // Category for which the bid will be associated with. For example,
    // xcat:service_area_business_plumber.
    optional string category_id = 1;

    // Manual CPA bid for the category. Bid must be greater than the
    // reserve price associated for that category. Value is in micros
    // and in the advertiser's currency.
    optional int64 manual_cpa_bid_micros = 2;
  }

  // Settings for Travel campaign.
  message TravelCampaignSettings {
    // Immutable. The Travel account ID associated with the Travel campaign.
    optional int64 travel_account_id = 1
        [(google.api.field_behavior) = IMMUTABLE];
  }

  // Settings for Discovery campaign.
  message DiscoveryCampaignSettings {
    // Immutable. Specifies whether this campaign uses upgraded targeting
    // options. When this field is set to `true`, you can use location and
    // language targeting at the ad group level as opposed to the standard
    // campaign-level targeting. This field defaults to `false`, and can only be
    // set when creating a campaign.
    optional bool upgraded_targeting = 1
        [(google.api.field_behavior) = IMMUTABLE];
  }

  // Asset automation setting contains pair of AssetAutomationType and the
  // asset automation opt-in/out status
  message AssetAutomationSetting {
    // The asset automation type advertiser would like to opt-in/out.
    optional google.ads.googleads.v16.enums.AssetAutomationTypeEnum
        .AssetAutomationType asset_automation_type = 1;

    // The opt-in/out status of asset automation type.
    optional google.ads.googleads.v16.enums.AssetAutomationStatusEnum
        .AssetAutomationStatus asset_automation_status = 2;
  }

  // Immutable. The resource name of the campaign.
  // Campaign resource names have the form:
  //
  // `customers/{customer_id}/campaigns/{campaign_id}`
  string resource_name = 1 [
    (google.api.field_behavior) = IMMUTABLE,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/Campaign"
    }
  ];

  // Output only. The ID of the campaign.
  optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY];

  // The name of the campaign.
  //
  // This field is required and should not be empty when creating new
  // campaigns.
  //
  // It must not contain any null (code point 0x0), NL line feed
  // (code point 0xA) or carriage return (code point 0xD) characters.
  optional string name = 58;

  // Output only. The primary status of the campaign.
  //
  // Provides insight into why a campaign is not serving or not serving
  // optimally. Modification to the campaign and its related entities might take
  // a while to be reflected in this status.
  google.ads.googleads.v16.enums.CampaignPrimaryStatusEnum.CampaignPrimaryStatus
      primary_status = 81 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The primary status reasons of the campaign.
  //
  // Provides insight into why a campaign is not serving or not serving
  // optimally. These reasons are aggregated to determine an overall
  // CampaignPrimaryStatus.
  repeated google.ads.googleads.v16.enums.CampaignPrimaryStatusReasonEnum
      .CampaignPrimaryStatusReason primary_status_reasons = 82
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // The status of the campaign.
  //
  // When a new campaign is added, the status defaults to ENABLED.
  google.ads.googleads.v16.enums.CampaignStatusEnum.CampaignStatus status = 5;

  // Output only. The ad serving status of the campaign.
  google.ads.googleads.v16.enums.CampaignServingStatusEnum.CampaignServingStatus
      serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The system status of the campaign's bidding strategy.
  google.ads.googleads.v16.enums.BiddingStrategySystemStatusEnum
      .BiddingStrategySystemStatus bidding_strategy_system_status = 78
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // The ad serving optimization status of the campaign.
  google.ads.googleads.v16.enums.AdServingOptimizationStatusEnum
      .AdServingOptimizationStatus ad_serving_optimization_status = 8;

  // Immutable. The primary serving target for ads within the campaign.
  // The targeting options can be refined in `network_settings`.
  //
  // This field is required and should not be empty when creating new
  // campaigns.
  //
  // Can be set only when creating campaigns.
  // After the campaign is created, the field can not be changed.
  google.ads.googleads.v16.enums.AdvertisingChannelTypeEnum
      .AdvertisingChannelType advertising_channel_type = 9
      [(google.api.field_behavior) = IMMUTABLE];

  // Immutable. Optional refinement to `advertising_channel_type`.
  // Must be a valid sub-type of the parent channel type.
  //
  // Can be set only when creating campaigns.
  // After campaign is created, the field can not be changed.
  google.ads.googleads.v16.enums.AdvertisingChannelSubTypeEnum
      .AdvertisingChannelSubType advertising_channel_sub_type = 10
      [(google.api.field_behavior) = IMMUTABLE];

  // The URL template for constructing a tracking URL.
  optional string tracking_url_template = 60;

  // The list of mappings used to substitute custom parameter tags in a
  // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
  repeated google.ads.googleads.v16.common.CustomParameter
      url_custom_parameters = 12;

  // The Local Services Campaign related settings.
  LocalServicesCampaignSettings local_services_campaign_settings = 75;

  // Settings for Travel campaign.
  TravelCampaignSettings travel_campaign_settings = 85;

  // Settings for Discovery campaign.
  DiscoveryCampaignSettings discovery_campaign_settings = 87;

  // Settings for Real-Time Bidding, a feature only available for campaigns
  // targeting the Ad Exchange network.
  google.ads.googleads.v16.common.RealTimeBiddingSetting
      real_time_bidding_setting = 39;

  // The network settings for the campaign.
  NetworkSettings network_settings = 14;

  // Immutable. The hotel setting for the campaign.
  HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE];

  // The setting for controlling Dynamic Search Ads (DSA).
  DynamicSearchAdsSetting dynamic_search_ads_setting = 33;

  // The setting for controlling Shopping campaigns.
  ShoppingSetting shopping_setting = 36;

  // Setting for targeting related features.
  google.ads.googleads.v16.common.TargetingSetting targeting_setting = 43;

  // Immutable. Setting for audience related features.
  optional AudienceSetting audience_setting = 73
      [(google.api.field_behavior) = IMMUTABLE];

  // The setting for ads geotargeting.
  GeoTargetTypeSetting geo_target_type_setting = 47;

  // The setting for local campaign.
  LocalCampaignSetting local_campaign_setting = 50;

  // The setting related to App Campaign.
  AppCampaignSetting app_campaign_setting = 51;

  // Output only. The resource names of labels attached to this campaign.
  repeated string labels = 61 [
    (google.api.field_behavior) = OUTPUT_ONLY,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/CampaignLabel"
    }
  ];

  // Output only. The type of campaign: normal, draft, or experiment.
  google.ads.googleads.v16.enums.CampaignExperimentTypeEnum
      .CampaignExperimentType experiment_type = 17
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. The resource name of the base campaign of a draft or
  // experiment campaign. For base campaigns, this is equal to `resource_name`.
  //
  // This field is read-only.
  optional string base_campaign = 56 [
    (google.api.field_behavior) = OUTPUT_ONLY,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/Campaign"
    }
  ];

  // The budget of the campaign.
  optional string campaign_budget = 62 [(google.api.resource_reference) = {
    type: "googleads.googleapis.com/CampaignBudget"
  }];

  // Output only. The type of bidding strategy.
  //
  // A bidding strategy can be created by setting either the bidding scheme to
  // create a standard bidding strategy or the `bidding_strategy` field to
  // create a portfolio bidding strategy.
  //
  // This field is read-only.
  google.ads.googleads.v16.enums.BiddingStrategyTypeEnum.BiddingStrategyType
      bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY];

  // Output only. Resource name of AccessibleBiddingStrategy, a read-only view
  // of the unrestricted attributes of the attached portfolio bidding strategy
  // identified by 'bidding_strategy'. Empty, if the campaign does not use a
  // portfolio strategy. Unrestricted strategy attributes are available to all
  // customers with whom the strategy is shared and are read from the
  // AccessibleBiddingStrategy resource. In contrast, restricted attributes are
  // only available to the owner customer of the strategy and their managers.
  // Restricted attributes can only be read from the BiddingStrategy resource.
  string accessible_bidding_strategy = 71 [
    (google.api.field_behavior) = OUTPUT_ONLY,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/AccessibleBiddingStrategy"
    }
  ];

  // The date when campaign started in serving customer's timezone in YYYY-MM-DD
  // format.
  optional string start_date = 63;

  // The campaign group this campaign belongs to.
  optional string campaign_group = 76 [(google.api.resource_reference) = {
    type: "googleads.googleapis.com/CampaignGroup"
  }];

  // The last day of the campaign in serving customer's timezone in YYYY-MM-DD
  // format. On create, defaults to 2037-12-30, which means the campaign will
  // run indefinitely. To set an existing campaign to run indefinitely, set this
  // field to 2037-12-30.
  optional string end_date = 64;

  // Suffix used to append query parameters to landing pages that are served
  // with parallel tracking.
  optional string final_url_suffix = 65;

  // A list that limits how often each user will see this campaign's ads.
  repeated google.ads.googleads.v16.common.FrequencyCapEntry frequency_caps =
      40;

  // Output only. 3-Tier Brand Safety setting for the campaign.
  google.ads.googleads.v16.enums.BrandSafetySuitabilityEnum
      .BrandSafetySuitability video_brand_safety_suitability = 42
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // Describes how unbranded pharma ads will be displayed.
  VanityPharma vanity_pharma = 44;

  // Selective optimization setting for this campaign, which includes a set of
  // conversion actions to optimize this campaign towards.
  // This feature only applies to app campaigns that use MULTI_CHANNEL as
  // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
  // AdvertisingChannelSubType.
  SelectiveOptimization selective_optimization = 45;

  // Optimization goal setting for this campaign, which includes a set of
  // optimization goal types.
  OptimizationGoalSetting optimization_goal_setting = 54;

  // Output only. Campaign-level settings for tracking information.
  TrackingSetting tracking_setting = 46
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // Payment mode for the campaign.
  google.ads.googleads.v16.enums.PaymentModeEnum.PaymentMode payment_mode = 52;

  // Output only. Optimization score of the campaign.
  //
  // Optimization score is an estimate of how well a campaign is set to perform.
  // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the
  // campaign is performing at full potential. This field is null for unscored
  // campaigns.
  //
  // See "About optimization score" at
  // https://support.google.com/google-ads/answer/9061546.
  //
  // This field is read-only.
  optional double optimization_score = 66
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // The asset field types that should be excluded from this campaign. Asset
  // links with these field types will not be inherited by this campaign from
  // the upper level.
  repeated google.ads.googleads.v16.enums.AssetFieldTypeEnum.AssetFieldType
      excluded_parent_asset_field_types = 69;

  // The asset set types that should be excluded from this campaign. Asset set
  // links with these types will not be inherited by this campaign from
  // the upper level.
  // Location group types (GMB_DYNAMIC_LOCATION_GROUP,
  // CHAIN_DYNAMIC_LOCATION_GROUP, and STATIC_LOCATION_GROUP) are child types of
  // LOCATION_SYNC. Therefore, if LOCATION_SYNC is set for this field, all
  // location group asset sets are not allowed to be linked to this campaign,
  // and all Location Extension (LE) and Affiliate Location Extensions (ALE)
  // will not be served under this campaign.
  // Only LOCATION_SYNC is currently supported.
  repeated google.ads.googleads.v16.enums.AssetSetTypeEnum.AssetSetType
      excluded_parent_asset_set_types = 80;

  // Represents opting out of URL expansion to more targeted URLs. If opted out
  // (true), only the final URLs in the asset group or URLs specified in the
  // advertiser's Google Merchant Center or business data feeds are targeted.
  // If opted in (false), the entire domain will be targeted. This field can
  // only be set for Performance Max campaigns, where the default value is
  // false.
  optional bool url_expansion_opt_out = 72;

  // Output only. Information about campaigns being upgraded to Performance Max.
  PerformanceMaxUpgrade performance_max_upgrade = 77
      [(google.api.field_behavior) = OUTPUT_ONLY];

  // Immutable. The set of hotel properties for Performance Max for travel goals
  // campaigns.
  optional string hotel_property_asset_set = 83 [
    (google.api.field_behavior) = IMMUTABLE,
    (google.api.resource_reference) = {
      type: "googleads.googleapis.com/AssetSet"
    }
  ];

  // Immutable. Listing type of ads served for this campaign.
  // Field is restricted for usage with Performance Max campaigns.
  optional google.ads.googleads.v16.enums.ListingTypeEnum.ListingType
      listing_type = 86 [(google.api.field_behavior) = IMMUTABLE];

  // Contains the opt-in/out status of each AssetAutomationType.
  // See documentation of each asset automation type enum for default
  // opt in/out behavior.
  repeated AssetAutomationSetting asset_automation_settings = 88;

  // The bidding strategy for the campaign.
  //
  // Must be either portfolio (created through BiddingStrategy service) or
  // standard, that is embedded into the campaign.
  oneof campaign_bidding_strategy {
    // Portfolio bidding strategy used by campaign.
    string bidding_strategy = 67 [(google.api.resource_reference) = {
      type: "googleads.googleapis.com/BiddingStrategy"
    }];

    // Commission is an automatic bidding strategy in which the advertiser pays
    // a certain portion of the conversion value.
    google.ads.googleads.v16.common.Commission commission = 49;

    // Standard Manual CPA bidding strategy.
    // Manual bidding strategy that allows advertiser to set the bid per
    // advertiser-specified action. Supported only for Local Services campaigns.
    google.ads.googleads.v16.common.ManualCpa manual_cpa = 74;

    // Standard Manual CPC bidding strategy.
    // Manual click-based bidding where user pays per click.
    google.ads.googleads.v16.common.ManualCpc manual_cpc = 24;

    // Standard Manual CPM bidding strategy.
    // Manual impression-based bidding where user pays per thousand
    // impressions.
    google.ads.googleads.v16.common.ManualCpm manual_cpm = 25;

    // A bidding strategy that pays a configurable amount per video view.
    google.ads.googleads.v16.common.ManualCpv manual_cpv = 37;

    // Standard Maximize Conversions bidding strategy that automatically
    // maximizes number of conversions while spending your budget.
    google.ads.googleads.v16.common.MaximizeConversions maximize_conversions =
        30;

    // Standard Maximize Conversion Value bidding strategy that automatically
    // sets bids to maximize revenue while spending your budget.
    google.ads.googleads.v16.common.MaximizeConversionValue
        maximize_conversion_value = 31;

    // Standard Target CPA bidding strategy that automatically sets bids to
    // help get as many conversions as possible at the target
    // cost-per-acquisition (CPA) you set.
    google.ads.googleads.v16.common.TargetCpa target_cpa = 26;

    // Target Impression Share bidding strategy. An automated bidding strategy
    // that sets bids to achieve a chosen percentage of impressions.
    google.ads.googleads.v16.common.TargetImpressionShare
        target_impression_share = 48;

    // Standard Target ROAS bidding strategy that automatically maximizes
    // revenue while averaging a specific target return on ad spend (ROAS).
    google.ads.googleads.v16.common.TargetRoas target_roas = 29;

    // Standard Target Spend bidding strategy that automatically sets your bids
    // to help get as many clicks as possible within your budget.
    google.ads.googleads.v16.common.TargetSpend target_spend = 27;

    // Standard Percent Cpc bidding strategy where bids are a fraction of the
    // advertised price for some good or service.
    google.ads.googleads.v16.common.PercentCpc percent_cpc = 34;

    // A bidding strategy that automatically optimizes cost per thousand
    // impressions.
    google.ads.googleads.v16.common.TargetCpm target_cpm = 41;
  }
}