campaign.proto 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441
  1. // Copyright 2021 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. syntax = "proto3";
  15. package google.ads.googleads.v8.resources;
  16. import "google/ads/googleads/v8/common/bidding.proto";
  17. import "google/ads/googleads/v8/common/custom_parameter.proto";
  18. import "google/ads/googleads/v8/common/frequency_cap.proto";
  19. import "google/ads/googleads/v8/common/real_time_bidding_setting.proto";
  20. import "google/ads/googleads/v8/common/targeting_setting.proto";
  21. import "google/ads/googleads/v8/enums/ad_serving_optimization_status.proto";
  22. import "google/ads/googleads/v8/enums/advertising_channel_sub_type.proto";
  23. import "google/ads/googleads/v8/enums/advertising_channel_type.proto";
  24. import "google/ads/googleads/v8/enums/app_campaign_app_store.proto";
  25. import "google/ads/googleads/v8/enums/app_campaign_bidding_strategy_goal_type.proto";
  26. import "google/ads/googleads/v8/enums/asset_field_type.proto";
  27. import "google/ads/googleads/v8/enums/bidding_strategy_type.proto";
  28. import "google/ads/googleads/v8/enums/brand_safety_suitability.proto";
  29. import "google/ads/googleads/v8/enums/campaign_experiment_type.proto";
  30. import "google/ads/googleads/v8/enums/campaign_serving_status.proto";
  31. import "google/ads/googleads/v8/enums/campaign_status.proto";
  32. import "google/ads/googleads/v8/enums/location_source_type.proto";
  33. import "google/ads/googleads/v8/enums/negative_geo_target_type.proto";
  34. import "google/ads/googleads/v8/enums/optimization_goal_type.proto";
  35. import "google/ads/googleads/v8/enums/payment_mode.proto";
  36. import "google/ads/googleads/v8/enums/positive_geo_target_type.proto";
  37. import "google/ads/googleads/v8/enums/vanity_pharma_display_url_mode.proto";
  38. import "google/ads/googleads/v8/enums/vanity_pharma_text.proto";
  39. import "google/api/field_behavior.proto";
  40. import "google/api/resource.proto";
  41. import "google/api/annotations.proto";
  42. option csharp_namespace = "Google.Ads.GoogleAds.V8.Resources";
  43. option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v8/resources;resources";
  44. option java_multiple_files = true;
  45. option java_outer_classname = "CampaignProto";
  46. option java_package = "com.google.ads.googleads.v8.resources";
  47. option objc_class_prefix = "GAA";
  48. option php_namespace = "Google\\Ads\\GoogleAds\\V8\\Resources";
  49. option ruby_package = "Google::Ads::GoogleAds::V8::Resources";
  50. // Proto file describing the Campaign resource.
  51. // A campaign.
  52. message Campaign {
  53. option (google.api.resource) = {
  54. type: "googleads.googleapis.com/Campaign"
  55. pattern: "customers/{customer_id}/campaigns/{campaign_id}"
  56. };
  57. // The network settings for the campaign.
  58. message NetworkSettings {
  59. // Whether ads will be served with google.com search results.
  60. optional bool target_google_search = 5;
  61. // Whether ads will be served on partner sites in the Google Search Network
  62. // (requires `target_google_search` to also be `true`).
  63. optional bool target_search_network = 6;
  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. // Whether ads will be served on the Google Partner Network.
  68. // This is available only to some select Google partner accounts.
  69. optional bool target_partner_search_network = 8;
  70. }
  71. // Campaign-level settings for hotel ads.
  72. message HotelSettingInfo {
  73. // Immutable. The linked Hotel Center account.
  74. optional int64 hotel_center_id = 2 [(google.api.field_behavior) = IMMUTABLE];
  75. }
  76. // The setting for controlling Dynamic Search Ads (DSA).
  77. message DynamicSearchAdsSetting {
  78. // Required. The Internet domain name that this setting represents, e.g., "google.com"
  79. // or "www.google.com".
  80. string domain_name = 6 [(google.api.field_behavior) = REQUIRED];
  81. // Required. The language code specifying the language of the domain, e.g., "en".
  82. string language_code = 7 [(google.api.field_behavior) = REQUIRED];
  83. // Whether the campaign uses advertiser supplied URLs exclusively.
  84. optional bool use_supplied_urls_only = 8;
  85. // The list of page feeds associated with the campaign.
  86. repeated string feeds = 9 [(google.api.resource_reference) = {
  87. type: "googleads.googleapis.com/Feed"
  88. }];
  89. }
  90. // Optimization goal setting for this campaign, which includes a set of
  91. // optimization goal types.
  92. message OptimizationGoalSetting {
  93. // The list of optimization goal types.
  94. repeated google.ads.googleads.v8.enums.OptimizationGoalTypeEnum.OptimizationGoalType optimization_goal_types = 1;
  95. }
  96. // The setting for Shopping campaigns. Defines the universe of products that
  97. // can be advertised by the campaign, and how this campaign interacts with
  98. // other Shopping campaigns.
  99. message ShoppingSetting {
  100. // Immutable. ID of the Merchant Center account.
  101. // This field is required for create operations. This field is immutable for
  102. // Shopping campaigns.
  103. optional int64 merchant_id = 5 [(google.api.field_behavior) = IMMUTABLE];
  104. // Immutable. Sales country of products to include in the campaign.
  105. // This field is required for Shopping campaigns. This field is immutable.
  106. // This field is optional for non-Shopping campaigns, but it must be equal
  107. // to 'ZZ' if set.
  108. optional string sales_country = 6 [(google.api.field_behavior) = IMMUTABLE];
  109. // Priority of the campaign. Campaigns with numerically higher priorities
  110. // take precedence over those with lower priorities.
  111. // This field is required for Shopping campaigns, with values between 0 and
  112. // 2, inclusive.
  113. // This field is optional for Smart Shopping campaigns, but must be equal to
  114. // 3 if set.
  115. optional int32 campaign_priority = 7;
  116. // Whether to include local products.
  117. optional bool enable_local = 8;
  118. }
  119. // Campaign-level settings for tracking information.
  120. message TrackingSetting {
  121. // Output only. The url used for dynamic tracking.
  122. optional string tracking_url = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  123. }
  124. // Represents a collection of settings related to ads geotargeting.
  125. message GeoTargetTypeSetting {
  126. // The setting used for positive geotargeting in this particular campaign.
  127. google.ads.googleads.v8.enums.PositiveGeoTargetTypeEnum.PositiveGeoTargetType positive_geo_target_type = 1;
  128. // The setting used for negative geotargeting in this particular campaign.
  129. google.ads.googleads.v8.enums.NegativeGeoTargetTypeEnum.NegativeGeoTargetType negative_geo_target_type = 2;
  130. }
  131. // Campaign setting for local campaigns.
  132. message LocalCampaignSetting {
  133. // The location source type for this local campaign.
  134. google.ads.googleads.v8.enums.LocationSourceTypeEnum.LocationSourceType location_source_type = 1;
  135. }
  136. // Describes how unbranded pharma ads will be displayed.
  137. message VanityPharma {
  138. // The display mode for vanity pharma URLs.
  139. google.ads.googleads.v8.enums.VanityPharmaDisplayUrlModeEnum.VanityPharmaDisplayUrlMode vanity_pharma_display_url_mode = 1;
  140. // The text that will be displayed in display URL of the text ad when
  141. // website description is the selected display mode for vanity pharma URLs.
  142. google.ads.googleads.v8.enums.VanityPharmaTextEnum.VanityPharmaText vanity_pharma_text = 2;
  143. }
  144. // Campaign-level settings for App Campaigns.
  145. message AppCampaignSetting {
  146. // Represents the goal which the bidding strategy of this app campaign
  147. // should optimize towards.
  148. google.ads.googleads.v8.enums.AppCampaignBiddingStrategyGoalTypeEnum.AppCampaignBiddingStrategyGoalType bidding_strategy_goal_type = 1;
  149. // Immutable. A string that uniquely identifies a mobile application.
  150. optional string app_id = 4 [(google.api.field_behavior) = IMMUTABLE];
  151. // Immutable. The application store that distributes this specific app.
  152. google.ads.googleads.v8.enums.AppCampaignAppStoreEnum.AppCampaignAppStore app_store = 3 [(google.api.field_behavior) = IMMUTABLE];
  153. }
  154. // Selective optimization setting for this campaign, which includes a set of
  155. // conversion actions to optimize this campaign towards.
  156. message SelectiveOptimization {
  157. // The selected set of conversion actions for optimizing this campaign.
  158. repeated string conversion_actions = 2 [(google.api.resource_reference) = {
  159. type: "googleads.googleapis.com/ConversionAction"
  160. }];
  161. }
  162. // Immutable. The resource name of the campaign.
  163. // Campaign resource names have the form:
  164. //
  165. // `customers/{customer_id}/campaigns/{campaign_id}`
  166. string resource_name = 1 [
  167. (google.api.field_behavior) = IMMUTABLE,
  168. (google.api.resource_reference) = {
  169. type: "googleads.googleapis.com/Campaign"
  170. }
  171. ];
  172. // Output only. The ID of the campaign.
  173. optional int64 id = 59 [(google.api.field_behavior) = OUTPUT_ONLY];
  174. // The name of the campaign.
  175. //
  176. // This field is required and should not be empty when creating new
  177. // campaigns.
  178. //
  179. // It must not contain any null (code point 0x0), NL line feed
  180. // (code point 0xA) or carriage return (code point 0xD) characters.
  181. optional string name = 58;
  182. // The status of the campaign.
  183. //
  184. // When a new campaign is added, the status defaults to ENABLED.
  185. google.ads.googleads.v8.enums.CampaignStatusEnum.CampaignStatus status = 5;
  186. // Output only. The ad serving status of the campaign.
  187. google.ads.googleads.v8.enums.CampaignServingStatusEnum.CampaignServingStatus serving_status = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
  188. // The ad serving optimization status of the campaign.
  189. google.ads.googleads.v8.enums.AdServingOptimizationStatusEnum.AdServingOptimizationStatus ad_serving_optimization_status = 8;
  190. // Immutable. The primary serving target for ads within the campaign.
  191. // The targeting options can be refined in `network_settings`.
  192. //
  193. // This field is required and should not be empty when creating new
  194. // campaigns.
  195. //
  196. // Can be set only when creating campaigns.
  197. // After the campaign is created, the field can not be changed.
  198. google.ads.googleads.v8.enums.AdvertisingChannelTypeEnum.AdvertisingChannelType advertising_channel_type = 9 [(google.api.field_behavior) = IMMUTABLE];
  199. // Immutable. Optional refinement to `advertising_channel_type`.
  200. // Must be a valid sub-type of the parent channel type.
  201. //
  202. // Can be set only when creating campaigns.
  203. // After campaign is created, the field can not be changed.
  204. google.ads.googleads.v8.enums.AdvertisingChannelSubTypeEnum.AdvertisingChannelSubType advertising_channel_sub_type = 10 [(google.api.field_behavior) = IMMUTABLE];
  205. // The URL template for constructing a tracking URL.
  206. optional string tracking_url_template = 60;
  207. // The list of mappings used to substitute custom parameter tags in a
  208. // `tracking_url_template`, `final_urls`, or `mobile_final_urls`.
  209. repeated google.ads.googleads.v8.common.CustomParameter url_custom_parameters = 12;
  210. // Settings for Real-Time Bidding, a feature only available for campaigns
  211. // targeting the Ad Exchange network.
  212. google.ads.googleads.v8.common.RealTimeBiddingSetting real_time_bidding_setting = 39;
  213. // The network settings for the campaign.
  214. NetworkSettings network_settings = 14;
  215. // Immutable. The hotel setting for the campaign.
  216. HotelSettingInfo hotel_setting = 32 [(google.api.field_behavior) = IMMUTABLE];
  217. // The setting for controlling Dynamic Search Ads (DSA).
  218. DynamicSearchAdsSetting dynamic_search_ads_setting = 33;
  219. // The setting for controlling Shopping campaigns.
  220. ShoppingSetting shopping_setting = 36;
  221. // Setting for targeting related features.
  222. google.ads.googleads.v8.common.TargetingSetting targeting_setting = 43;
  223. // The setting for ads geotargeting.
  224. GeoTargetTypeSetting geo_target_type_setting = 47;
  225. // The setting for local campaign.
  226. LocalCampaignSetting local_campaign_setting = 50;
  227. // The setting related to App Campaign.
  228. AppCampaignSetting app_campaign_setting = 51;
  229. // Output only. The resource names of labels attached to this campaign.
  230. repeated string labels = 61 [
  231. (google.api.field_behavior) = OUTPUT_ONLY,
  232. (google.api.resource_reference) = {
  233. type: "googleads.googleapis.com/CampaignLabel"
  234. }
  235. ];
  236. // Output only. The type of campaign: normal, draft, or experiment.
  237. google.ads.googleads.v8.enums.CampaignExperimentTypeEnum.CampaignExperimentType experiment_type = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
  238. // Output only. The resource name of the base campaign of a draft or experiment campaign.
  239. // For base campaigns, this is equal to `resource_name`.
  240. //
  241. // This field is read-only.
  242. optional string base_campaign = 56 [
  243. (google.api.field_behavior) = OUTPUT_ONLY,
  244. (google.api.resource_reference) = {
  245. type: "googleads.googleapis.com/Campaign"
  246. }
  247. ];
  248. // The budget of the campaign.
  249. optional string campaign_budget = 62 [(google.api.resource_reference) = {
  250. type: "googleads.googleapis.com/CampaignBudget"
  251. }];
  252. // Output only. The type of bidding strategy.
  253. //
  254. // A bidding strategy can be created by setting either the bidding scheme to
  255. // create a standard bidding strategy or the `bidding_strategy` field to
  256. // create a portfolio bidding strategy.
  257. //
  258. // This field is read-only.
  259. google.ads.googleads.v8.enums.BiddingStrategyTypeEnum.BiddingStrategyType bidding_strategy_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY];
  260. // Output only. Resource name of AccessibleBiddingStrategy, a read-only view of the
  261. // unrestricted attributes of the attached portfolio bidding
  262. // strategy identified by 'bidding_strategy'. Empty, if the campaign does not
  263. // use a portfolio strategy.
  264. // Unrestricted strategy attributes are available to all customers
  265. // with whom the strategy is shared and are read from the
  266. // AccessibleBiddingStrategy resource. In contrast, restricted attributes are
  267. // only available to the owner customer of the strategy and their managers.
  268. // Restricted attributes can only be read from the BiddingStrategy resource.
  269. string accessible_bidding_strategy = 71 [
  270. (google.api.field_behavior) = OUTPUT_ONLY,
  271. (google.api.resource_reference) = {
  272. type: "googleads.googleapis.com/AccessibleBiddingStrategy"
  273. }
  274. ];
  275. // The date when campaign started.
  276. optional string start_date = 63;
  277. // The last day of the campaign.
  278. optional string end_date = 64;
  279. // Suffix used to append query parameters to landing pages that are served
  280. // with parallel tracking.
  281. optional string final_url_suffix = 65;
  282. // A list that limits how often each user will see this campaign's ads.
  283. repeated google.ads.googleads.v8.common.FrequencyCapEntry frequency_caps = 40;
  284. // Output only. 3-Tier Brand Safety setting for the campaign.
  285. google.ads.googleads.v8.enums.BrandSafetySuitabilityEnum.BrandSafetySuitability video_brand_safety_suitability = 42 [(google.api.field_behavior) = OUTPUT_ONLY];
  286. // Describes how unbranded pharma ads will be displayed.
  287. VanityPharma vanity_pharma = 44;
  288. // Selective optimization setting for this campaign, which includes a set of
  289. // conversion actions to optimize this campaign towards.
  290. SelectiveOptimization selective_optimization = 45;
  291. // Optimization goal setting for this campaign, which includes a set of
  292. // optimization goal types.
  293. OptimizationGoalSetting optimization_goal_setting = 54;
  294. // Output only. Campaign-level settings for tracking information.
  295. TrackingSetting tracking_setting = 46 [(google.api.field_behavior) = OUTPUT_ONLY];
  296. // Payment mode for the campaign.
  297. google.ads.googleads.v8.enums.PaymentModeEnum.PaymentMode payment_mode = 52;
  298. // Output only. Optimization score of the campaign.
  299. //
  300. // Optimization score is an estimate of how well a campaign is set to perform.
  301. // It ranges from 0% (0.0) to 100% (1.0), with 100% indicating that the
  302. // campaign is performing at full potential. This field is null for unscored
  303. // campaigns.
  304. //
  305. // See "About optimization score" at
  306. // https://support.google.com/google-ads/answer/9061546.
  307. //
  308. // This field is read-only.
  309. optional double optimization_score = 66 [(google.api.field_behavior) = OUTPUT_ONLY];
  310. // The asset field types that should be excluded from this campaign. Asset
  311. // links with these field types will not be inherited by this campaign from
  312. // the upper level.
  313. repeated google.ads.googleads.v8.enums.AssetFieldTypeEnum.AssetFieldType excluded_parent_asset_field_types = 69;
  314. // The bidding strategy for the campaign.
  315. //
  316. // Must be either portfolio (created via BiddingStrategy service) or
  317. // standard, that is embedded into the campaign.
  318. oneof campaign_bidding_strategy {
  319. // Portfolio bidding strategy used by campaign.
  320. string bidding_strategy = 67 [(google.api.resource_reference) = {
  321. type: "googleads.googleapis.com/BiddingStrategy"
  322. }];
  323. // Commission is an automatic bidding strategy in which the advertiser pays
  324. // a certain portion of the conversion value.
  325. google.ads.googleads.v8.common.Commission commission = 49;
  326. // Standard Manual CPC bidding strategy.
  327. // Manual click-based bidding where user pays per click.
  328. google.ads.googleads.v8.common.ManualCpc manual_cpc = 24;
  329. // Standard Manual CPM bidding strategy.
  330. // Manual impression-based bidding where user pays per thousand
  331. // impressions.
  332. google.ads.googleads.v8.common.ManualCpm manual_cpm = 25;
  333. // Output only. A bidding strategy that pays a configurable amount per video view.
  334. google.ads.googleads.v8.common.ManualCpv manual_cpv = 37 [(google.api.field_behavior) = OUTPUT_ONLY];
  335. // Standard Maximize Conversions bidding strategy that automatically
  336. // maximizes number of conversions while spending your budget.
  337. google.ads.googleads.v8.common.MaximizeConversions maximize_conversions = 30;
  338. // Standard Maximize Conversion Value bidding strategy that automatically
  339. // sets bids to maximize revenue while spending your budget.
  340. google.ads.googleads.v8.common.MaximizeConversionValue maximize_conversion_value = 31;
  341. // Standard Target CPA bidding strategy that automatically sets bids to
  342. // help get as many conversions as possible at the target
  343. // cost-per-acquisition (CPA) you set.
  344. google.ads.googleads.v8.common.TargetCpa target_cpa = 26;
  345. // Target Impression Share bidding strategy. An automated bidding strategy
  346. // that sets bids to achieve a desired percentage of impressions.
  347. google.ads.googleads.v8.common.TargetImpressionShare target_impression_share = 48;
  348. // Standard Target ROAS bidding strategy that automatically maximizes
  349. // revenue while averaging a specific target return on ad spend (ROAS).
  350. google.ads.googleads.v8.common.TargetRoas target_roas = 29;
  351. // Standard Target Spend bidding strategy that automatically sets your bids
  352. // to help get as many clicks as possible within your budget.
  353. google.ads.googleads.v8.common.TargetSpend target_spend = 27;
  354. // Standard Percent Cpc bidding strategy where bids are a fraction of the
  355. // advertised price for some good or service.
  356. google.ads.googleads.v8.common.PercentCpc percent_cpc = 34;
  357. // A bidding strategy that automatically optimizes cost per thousand
  358. // impressions.
  359. google.ads.googleads.v8.common.TargetCpm target_cpm = 41;
  360. }
  361. }