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