xref: /aosp_15_r20/external/googleapis/google/ads/searchads360/v0/resources/campaign.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.searchads360.v0.resources;
18
19import "google/ads/searchads360/v0/common/bidding.proto";
20import "google/ads/searchads360/v0/common/custom_parameter.proto";
21import "google/ads/searchads360/v0/common/frequency_cap.proto";
22import "google/ads/searchads360/v0/common/real_time_bidding_setting.proto";
23import "google/ads/searchads360/v0/enums/ad_serving_optimization_status.proto";
24import "google/ads/searchads360/v0/enums/advertising_channel_sub_type.proto";
25import "google/ads/searchads360/v0/enums/advertising_channel_type.proto";
26import "google/ads/searchads360/v0/enums/asset_field_type.proto";
27import "google/ads/searchads360/v0/enums/bidding_strategy_system_status.proto";
28import "google/ads/searchads360/v0/enums/bidding_strategy_type.proto";
29import "google/ads/searchads360/v0/enums/campaign_serving_status.proto";
30import "google/ads/searchads360/v0/enums/campaign_status.proto";
31import "google/ads/searchads360/v0/enums/negative_geo_target_type.proto";
32import "google/ads/searchads360/v0/enums/optimization_goal_type.proto";
33import "google/ads/searchads360/v0/enums/positive_geo_target_type.proto";
34import "google/api/field_behavior.proto";
35import "google/api/resource.proto";
36
37option csharp_namespace = "Google.Ads.SearchAds360.V0.Resources";
38option go_package = "google.golang.org/genproto/googleapis/ads/searchads360/v0/resources;resources";
39option java_multiple_files = true;
40option java_outer_classname = "CampaignProto";
41option java_package = "com.google.ads.searchads360.v0.resources";
42option objc_class_prefix = "GASA360";
43option php_namespace = "Google\\Ads\\SearchAds360\\V0\\Resources";
44option ruby_package = "Google::Ads::SearchAds360::V0::Resources";
45
46// Proto file describing the Campaign resource.
47
48// A campaign.
49message Campaign {
50  option (google.api.resource) = {
51    type: "searchads360.googleapis.com/Campaign"
52    pattern: "customers/{customer_id}/campaigns/{campaign_id}"
53  };
54
55  // The network settings for the campaign.
56  message NetworkSettings {
57    // Whether ads will be served with google.com search results.
58    optional bool target_google_search = 5;
59
60    // Whether ads will be served on partner sites in the Google Search Network
61    // (requires `target_google_search` to also be `true`).
62    optional bool target_search_network = 6;
63
64    // Whether ads will be served on specified placements in the Google Display
65    // Network. Placements are specified using the Placement criterion.
66    optional bool target_content_network = 7;
67
68    // Whether ads will be served on the Google Partner Network.
69    // This is available only to some select Google partner accounts.
70    optional bool target_partner_search_network = 8;
71  }
72
73  // The setting for controlling Dynamic Search Ads (DSA).
74  message DynamicSearchAdsSetting {
75    // Required. The Internet domain name that this setting represents, for
76    // example, "google.com" or "www.google.com".
77    string domain_name = 6 [(google.api.field_behavior) = REQUIRED];
78
79    // Required. The language code specifying the language of the domain, for
80    // example, "en".
81    string language_code = 7 [(google.api.field_behavior) = REQUIRED];
82
83    // Whether the campaign uses advertiser supplied URLs exclusively.
84    optional bool use_supplied_urls_only = 8;
85  }
86
87  // The setting for Shopping campaigns. Defines the universe of products that
88  // can be advertised by the campaign, and how this campaign interacts with
89  // other Shopping campaigns.
90  message ShoppingSetting {
91    // Immutable. ID of the Merchant Center account.
92    // This field is required for create operations. This field is immutable for
93    // Shopping campaigns.
94    optional int64 merchant_id = 5 [(google.api.field_behavior) = IMMUTABLE];
95
96    // Sales country of products to include in the campaign.
97    //
98    optional string sales_country = 6;
99
100    // Feed label of products to include in the campaign.
101    // Only one of feed_label or sales_country can be set.
102    // If used instead of sales_country, the feed_label field accepts country
103    // codes in the same format for example: 'XX'.
104    // Otherwise can be any string used for feed label in Google Merchant
105    // Center.
106    string feed_label = 10;
107
108    // Priority of the campaign. Campaigns with numerically higher priorities
109    // take precedence over those with lower priorities.
110    // This field is required for Shopping campaigns, with values between 0 and
111    // 2, inclusive.
112    // This field is optional for Smart Shopping campaigns, but must be equal to
113    // 3 if set.
114    optional int32 campaign_priority = 7;
115
116    // Whether to include local products.
117    optional bool enable_local = 8;
118
119    // Immutable. Whether to target Vehicle Listing inventory.
120    bool use_vehicle_inventory = 9 [(google.api.field_behavior) = IMMUTABLE];
121  }
122
123  // Campaign-level settings for tracking information.
124  message TrackingSetting {
125    // Output only. The url used for dynamic tracking.
126    optional string tracking_url = 2
127        [(google.api.field_behavior) = OUTPUT_ONLY];
128  }
129
130  // Represents a collection of settings related to ads geotargeting.
131  message GeoTargetTypeSetting {
132    // The setting used for positive geotargeting in this particular campaign.
133    google.ads.searchads360.v0.enums.PositiveGeoTargetTypeEnum
134        .PositiveGeoTargetType positive_geo_target_type = 1;
135
136    // The setting used for negative geotargeting in this particular campaign.
137    google.ads.searchads360.v0.enums.NegativeGeoTargetTypeEnum
138        .NegativeGeoTargetType negative_geo_target_type = 2;
139  }
140
141  // Selective optimization setting for this campaign, which includes a set of
142  // conversion actions to optimize this campaign towards.
143  // This feature only applies to app campaigns that use MULTI_CHANNEL as
144  // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
145  // AdvertisingChannelSubType.
146  message SelectiveOptimization {
147    // The selected set of conversion actions for optimizing this campaign.
148    repeated string conversion_actions = 2 [(google.api.resource_reference) = {
149      type: "searchads360.googleapis.com/ConversionAction"
150    }];
151  }
152
153  // Optimization goal setting for this campaign, which includes a set of
154  // optimization goal types.
155  message OptimizationGoalSetting {
156    // The list of optimization goal types.
157    repeated google.ads.searchads360.v0.enums.OptimizationGoalTypeEnum
158        .OptimizationGoalType optimization_goal_types = 1;
159  }
160
161  // Immutable. The resource name of the campaign.
162  // Campaign resource names have the form:
163  //
164  // `customers/{customer_id}/campaigns/{campaign_id}`
165  string resource_name = 1 [
166    (google.api.field_behavior) = IMMUTABLE,
167    (google.api.resource_reference) = {
168      type: "searchads360.googleapis.com/Campaign"
169    }
170  ];
171
172  // Output only. The ID of the campaign.
173  optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY];
174
175  // The name of the campaign.
176  //
177  // This field is required and should not be empty when creating new
178  // campaigns.
179  //
180  // It must not contain any null (code point 0x0), NL line feed
181  // (code point 0xA) or carriage return (code point 0xD) characters.
182  optional string name = 58;
183
184  // The status of the campaign.
185  //
186  // When a new campaign is added, the status defaults to ENABLED.
187  google.ads.searchads360.v0.enums.CampaignStatusEnum.CampaignStatus status = 5;
188
189  // Output only. The ad serving status of the campaign.
190  google.ads.searchads360.v0.enums.CampaignServingStatusEnum
191      .CampaignServingStatus serving_status = 21
192      [(google.api.field_behavior) = OUTPUT_ONLY];
193
194  // Output only. The system status of the campaign's bidding strategy.
195  google.ads.searchads360.v0.enums.BiddingStrategySystemStatusEnum
196      .BiddingStrategySystemStatus bidding_strategy_system_status = 78
197      [(google.api.field_behavior) = OUTPUT_ONLY];
198
199  // The ad serving optimization status of the campaign.
200  google.ads.searchads360.v0.enums.AdServingOptimizationStatusEnum
201      .AdServingOptimizationStatus ad_serving_optimization_status = 8;
202
203  // Immutable. The primary serving target for ads within the campaign.
204  // The targeting options can be refined in `network_settings`.
205  //
206  // This field is required and should not be empty when creating new
207  // campaigns.
208  //
209  // Can be set only when creating campaigns.
210  // After the campaign is created, the field can not be changed.
211  google.ads.searchads360.v0.enums.AdvertisingChannelTypeEnum
212      .AdvertisingChannelType advertising_channel_type = 9
213      [(google.api.field_behavior) = IMMUTABLE];
214
215  // Immutable. Optional refinement to `advertising_channel_type`.
216  // Must be a valid sub-type of the parent channel type.
217  //
218  // Can be set only when creating campaigns.
219  // After campaign is created, the field can not be changed.
220  google.ads.searchads360.v0.enums.AdvertisingChannelSubTypeEnum
221      .AdvertisingChannelSubType advertising_channel_sub_type = 10
222      [(google.api.field_behavior) = IMMUTABLE];
223
224  // The URL template for constructing a tracking URL.
225  optional string tracking_url_template = 60;
226
227  // The list of mappings used to substitute custom parameter tags in a
228  // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
229  repeated google.ads.searchads360.v0.common.CustomParameter
230      url_custom_parameters = 12;
231
232  // Settings for Real-Time Bidding, a feature only available for campaigns
233  // targeting the Ad Exchange network.
234  google.ads.searchads360.v0.common.RealTimeBiddingSetting
235      real_time_bidding_setting = 39;
236
237  // The network settings for the campaign.
238  NetworkSettings network_settings = 14;
239
240  // The setting for controlling Dynamic Search Ads (DSA).
241  DynamicSearchAdsSetting dynamic_search_ads_setting = 33;
242
243  // The setting for controlling Shopping campaigns.
244  ShoppingSetting shopping_setting = 36;
245
246  // The setting for ads geotargeting.
247  GeoTargetTypeSetting geo_target_type_setting = 47;
248
249  // Output only. The resource names of labels attached to this campaign.
250  repeated string labels = 61 [
251    (google.api.field_behavior) = OUTPUT_ONLY,
252    (google.api.resource_reference) = {
253      type: "searchads360.googleapis.com/CampaignLabel"
254    }
255  ];
256
257  // The budget of the campaign.
258  optional string campaign_budget = 62 [(google.api.resource_reference) = {
259    type: "searchads360.googleapis.com/CampaignBudget"
260  }];
261
262  // Output only. The type of bidding strategy.
263  //
264  // A bidding strategy can be created by setting either the bidding scheme to
265  // create a standard bidding strategy or the `bidding_strategy` field to
266  // create a portfolio bidding strategy.
267  //
268  // This field is read-only.
269  google.ads.searchads360.v0.enums.BiddingStrategyTypeEnum.BiddingStrategyType
270      bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
271
272  // Output only. Resource name of AccessibleBiddingStrategy, a read-only view
273  // of the unrestricted attributes of the attached portfolio bidding strategy
274  // identified by 'bidding_strategy'. Empty, if the campaign does not use a
275  // portfolio strategy. Unrestricted strategy attributes are available to all
276  // customers with whom the strategy is shared and are read from the
277  // AccessibleBiddingStrategy resource. In contrast, restricted attributes are
278  // only available to the owner customer of the strategy and their managers.
279  // Restricted attributes can only be read from the BiddingStrategy resource.
280  string accessible_bidding_strategy = 71 [
281    (google.api.field_behavior) = OUTPUT_ONLY,
282    (google.api.resource_reference) = {
283      type: "searchads360.googleapis.com/AccessibleBiddingStrategy"
284    }
285  ];
286
287  // The date when campaign started in serving customer's timezone in YYYY-MM-DD
288  // format.
289  optional string start_date = 63;
290
291  // The last day of the campaign in serving customer's timezone in YYYY-MM-DD
292  // format. On create, defaults to 2037-12-30, which means the campaign will
293  // run indefinitely. To set an existing campaign to run indefinitely, set this
294  // field to 2037-12-30.
295  optional string end_date = 64;
296
297  // Suffix used to append query parameters to landing pages that are served
298  // with parallel tracking.
299  optional string final_url_suffix = 65;
300
301  // A list that limits how often each user will see this campaign's ads.
302  repeated google.ads.searchads360.v0.common.FrequencyCapEntry frequency_caps =
303      40;
304
305  // Selective optimization setting for this campaign, which includes a set of
306  // conversion actions to optimize this campaign towards.
307  // This feature only applies to app campaigns that use MULTI_CHANNEL as
308  // AdvertisingChannelType and APP_CAMPAIGN or APP_CAMPAIGN_FOR_ENGAGEMENT as
309  // AdvertisingChannelSubType.
310  SelectiveOptimization selective_optimization = 45;
311
312  // Optimization goal setting for this campaign, which includes a set of
313  // optimization goal types.
314  OptimizationGoalSetting optimization_goal_setting = 54;
315
316  // Output only. Campaign-level settings for tracking information.
317  TrackingSetting tracking_setting = 46
318      [(google.api.field_behavior) = OUTPUT_ONLY];
319
320  // Output only. ID of the campaign in the external engine account. This field
321  // is for non-Google Ads account only, for example, Yahoo Japan, Microsoft,
322  // Baidu etc. For Google Ads entity, use "campaign.id" instead.
323  string engine_id = 68 [(google.api.field_behavior) = OUTPUT_ONLY];
324
325  // The asset field types that should be excluded from this campaign. Asset
326  // links with these field types will not be inherited by this campaign from
327  // the upper level.
328  repeated google.ads.searchads360.v0.enums.AssetFieldTypeEnum.AssetFieldType
329      excluded_parent_asset_field_types = 69;
330
331  // Output only. The timestamp when this campaign was created. The timestamp is
332  // in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" format.
333  // create_time will be deprecated in v1. Use creation_time instead.
334  string create_time = 79 [(google.api.field_behavior) = OUTPUT_ONLY];
335
336  // Output only. The timestamp when this campaign was created. The timestamp is
337  // in the customer's time zone and in "yyyy-MM-dd HH:mm:ss" format.
338  string creation_time = 84 [(google.api.field_behavior) = OUTPUT_ONLY];
339
340  // Output only. The datetime when this campaign was last modified. The
341  // datetime is in the customer's time zone and in "yyyy-MM-dd HH:mm:ss.ssssss"
342  // format.
343  string last_modified_time = 70 [(google.api.field_behavior) = OUTPUT_ONLY];
344
345  // Represents opting out of URL expansion to more targeted URLs. If opted out
346  // (true), only the final URLs in the asset group or URLs specified in the
347  // advertiser's Google Merchant Center or business data feeds are targeted.
348  // If opted in (false), the entire domain will be targeted. This field can
349  // only be set for Performance Max campaigns, where the default value is
350  // false.
351  optional bool url_expansion_opt_out = 72;
352
353  // The bidding strategy for the campaign.
354  //
355  // Must be either portfolio (created through BiddingStrategy service) or
356  // standard, that is embedded into the campaign.
357  oneof campaign_bidding_strategy {
358    // Portfolio bidding strategy used by campaign.
359    string bidding_strategy = 67 [(google.api.resource_reference) = {
360      type: "searchads360.googleapis.com/BiddingStrategy"
361    }];
362
363    // Standard Manual CPA bidding strategy.
364    // Manual bidding strategy that allows advertiser to set the bid per
365    // advertiser-specified action. Supported only for Local Services campaigns.
366    google.ads.searchads360.v0.common.ManualCpa manual_cpa = 74;
367
368    // Standard Manual CPC bidding strategy.
369    // Manual click-based bidding where user pays per click.
370    google.ads.searchads360.v0.common.ManualCpc manual_cpc = 24;
371
372    // Standard Manual CPM bidding strategy.
373    // Manual impression-based bidding where user pays per thousand
374    // impressions.
375    google.ads.searchads360.v0.common.ManualCpm manual_cpm = 25;
376
377    // Standard Maximize Conversions bidding strategy that automatically
378    // maximizes number of conversions while spending your budget.
379    google.ads.searchads360.v0.common.MaximizeConversions maximize_conversions =
380        30;
381
382    // Standard Maximize Conversion Value bidding strategy that automatically
383    // sets bids to maximize revenue while spending your budget.
384    google.ads.searchads360.v0.common.MaximizeConversionValue
385        maximize_conversion_value = 31;
386
387    // Standard Target CPA bidding strategy that automatically sets bids to
388    // help get as many conversions as possible at the target
389    // cost-per-acquisition (CPA) you set.
390    google.ads.searchads360.v0.common.TargetCpa target_cpa = 26;
391
392    // Target Impression Share bidding strategy. An automated bidding strategy
393    // that sets bids to achieve a chosen percentage of impressions.
394    google.ads.searchads360.v0.common.TargetImpressionShare
395        target_impression_share = 48;
396
397    // Standard Target ROAS bidding strategy that automatically maximizes
398    // revenue while averaging a specific target return on ad spend (ROAS).
399    google.ads.searchads360.v0.common.TargetRoas target_roas = 29;
400
401    // Standard Target Spend bidding strategy that automatically sets your bids
402    // to help get as many clicks as possible within your budget.
403    google.ads.searchads360.v0.common.TargetSpend target_spend = 27;
404
405    // Standard Percent Cpc bidding strategy where bids are a fraction of the
406    // advertised price for some good or service.
407    google.ads.searchads360.v0.common.PercentCpc percent_cpc = 34;
408
409    // A bidding strategy that automatically optimizes cost per thousand
410    // impressions.
411    google.ads.searchads360.v0.common.TargetCpm target_cpm = 41;
412  }
413}
414