bidding.proto 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. // Copyright 2022 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.v12.common;
  16. import "google/ads/googleads/v12/enums/target_impression_share_location.proto";
  17. option csharp_namespace = "Google.Ads.GoogleAds.V12.Common";
  18. option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v12/common;common";
  19. option java_multiple_files = true;
  20. option java_outer_classname = "BiddingProto";
  21. option java_package = "com.google.ads.googleads.v12.common";
  22. option objc_class_prefix = "GAA";
  23. option php_namespace = "Google\\Ads\\GoogleAds\\V12\\Common";
  24. option ruby_package = "Google::Ads::GoogleAds::V12::Common";
  25. // Proto file describing bidding schemes.
  26. // Commission is an automatic bidding strategy in which the advertiser pays a
  27. // certain portion of the conversion value.
  28. message Commission {
  29. // Commission rate defines the portion of the conversion value that the
  30. // advertiser will be billed. A commission rate of x should be passed into
  31. // this field as (x * 1,000,000). For example, 106,000 represents a commission
  32. // rate of 0.106 (10.6%).
  33. optional int64 commission_rate_micros = 2;
  34. }
  35. // An automated bidding strategy that raises bids for clicks
  36. // that seem more likely to lead to a conversion and lowers
  37. // them for clicks where they seem less likely.
  38. //
  39. // This bidding strategy is deprecated and cannot be created anymore. Use
  40. // ManualCpc with enhanced_cpc_enabled set to true for equivalent functionality.
  41. message EnhancedCpc {
  42. }
  43. // Manual bidding strategy that allows advertiser to set the bid per
  44. // advertiser-specified action.
  45. message ManualCpa {
  46. }
  47. // Manual click-based bidding where user pays per click.
  48. message ManualCpc {
  49. // Whether bids are to be enhanced based on conversion optimizer data.
  50. optional bool enhanced_cpc_enabled = 2;
  51. }
  52. // Manual impression-based bidding where user pays per thousand impressions.
  53. message ManualCpm {
  54. }
  55. // View based bidding where user pays per video view.
  56. message ManualCpv {
  57. }
  58. // An automated bidding strategy to help get the most conversions for your
  59. // campaigns while spending your budget.
  60. message MaximizeConversions {
  61. // Maximum bid limit that can be set by the bid strategy.
  62. // The limit applies to all keywords managed by the strategy.
  63. // Mutable for portfolio bidding strategies only.
  64. int64 cpc_bid_ceiling_micros = 2;
  65. // Minimum bid limit that can be set by the bid strategy.
  66. // The limit applies to all keywords managed by the strategy.
  67. // Mutable for portfolio bidding strategies only.
  68. int64 cpc_bid_floor_micros = 3;
  69. // The target cost-per-action (CPA) option. This is the average amount that
  70. // you would like to spend per conversion action specified in micro units of
  71. // the bidding strategy's currency. If set, the bid strategy will get as many
  72. // conversions as possible at or below the target cost-per-action. If the
  73. // target CPA is not set, the bid strategy will aim to achieve the lowest
  74. // possible CPA given the budget.
  75. int64 target_cpa_micros = 4;
  76. }
  77. // An automated bidding strategy to help get the most conversion value for your
  78. // campaigns while spending your budget.
  79. message MaximizeConversionValue {
  80. // The target return on ad spend (ROAS) option. If set, the bid strategy will
  81. // maximize revenue while averaging the target return on ad spend. If the
  82. // target ROAS is high, the bid strategy may not be able to spend the full
  83. // budget. If the target ROAS is not set, the bid strategy will aim to
  84. // achieve the highest possible ROAS for the budget.
  85. double target_roas = 2;
  86. // Maximum bid limit that can be set by the bid strategy.
  87. // The limit applies to all keywords managed by the strategy.
  88. // Mutable for portfolio bidding strategies only.
  89. int64 cpc_bid_ceiling_micros = 3;
  90. // Minimum bid limit that can be set by the bid strategy.
  91. // The limit applies to all keywords managed by the strategy.
  92. // Mutable for portfolio bidding strategies only.
  93. int64 cpc_bid_floor_micros = 4;
  94. }
  95. // An automated bid strategy that sets bids to help get as many conversions as
  96. // possible at the target cost-per-acquisition (CPA) you set.
  97. message TargetCpa {
  98. // Average CPA target.
  99. // This target should be greater than or equal to minimum billable unit based
  100. // on the currency for the account.
  101. optional int64 target_cpa_micros = 4;
  102. // Maximum bid limit that can be set by the bid strategy.
  103. // The limit applies to all keywords managed by the strategy.
  104. // This should only be set for portfolio bid strategies.
  105. optional int64 cpc_bid_ceiling_micros = 5;
  106. // Minimum bid limit that can be set by the bid strategy.
  107. // The limit applies to all keywords managed by the strategy.
  108. // This should only be set for portfolio bid strategies.
  109. optional int64 cpc_bid_floor_micros = 6;
  110. }
  111. // Target CPM (cost per thousand impressions) is an automated bidding strategy
  112. // that sets bids to optimize performance given the target CPM you set.
  113. message TargetCpm {
  114. }
  115. // An automated bidding strategy that sets bids so that a certain percentage of
  116. // search ads are shown at the top of the first page (or other targeted
  117. // location).
  118. message TargetImpressionShare {
  119. // The targeted location on the search results page.
  120. google.ads.googleads.v12.enums.TargetImpressionShareLocationEnum.TargetImpressionShareLocation location = 1;
  121. // The chosen fraction of ads to be shown in the targeted location in micros.
  122. // For example, 1% equals 10,000.
  123. optional int64 location_fraction_micros = 4;
  124. // The highest CPC bid the automated bidding system is permitted to specify.
  125. // This is a required field entered by the advertiser that sets the ceiling
  126. // and specified in local micros.
  127. optional int64 cpc_bid_ceiling_micros = 5;
  128. }
  129. // An automated bidding strategy that helps you maximize revenue while
  130. // averaging a specific target return on ad spend (ROAS).
  131. message TargetRoas {
  132. // Required. The chosen revenue (based on conversion data) per unit of spend.
  133. // Value must be between 0.01 and 1000.0, inclusive.
  134. optional double target_roas = 4;
  135. // Maximum bid limit that can be set by the bid strategy.
  136. // The limit applies to all keywords managed by the strategy.
  137. // This should only be set for portfolio bid strategies.
  138. optional int64 cpc_bid_ceiling_micros = 5;
  139. // Minimum bid limit that can be set by the bid strategy.
  140. // The limit applies to all keywords managed by the strategy.
  141. // This should only be set for portfolio bid strategies.
  142. optional int64 cpc_bid_floor_micros = 6;
  143. }
  144. // An automated bid strategy that sets your bids to help get as many clicks
  145. // as possible within your budget.
  146. message TargetSpend {
  147. // The spend target under which to maximize clicks.
  148. // A TargetSpend bidder will attempt to spend the smaller of this value
  149. // or the natural throttling spend amount.
  150. // If not specified, the budget is used as the spend target.
  151. // This field is deprecated and should no longer be used. See
  152. // https://ads-developers.googleblog.com/2020/05/reminder-about-sunset-creation-of.html
  153. // for details.
  154. optional int64 target_spend_micros = 3 [deprecated = true];
  155. // Maximum bid limit that can be set by the bid strategy.
  156. // The limit applies to all keywords managed by the strategy.
  157. optional int64 cpc_bid_ceiling_micros = 4;
  158. }
  159. // A bidding strategy where bids are a fraction of the advertised price for
  160. // some good or service.
  161. message PercentCpc {
  162. // Maximum bid limit that can be set by the bid strategy. This is
  163. // an optional field entered by the advertiser and specified in local micros.
  164. // Note: A zero value is interpreted in the same way as having bid_ceiling
  165. // undefined.
  166. optional int64 cpc_bid_ceiling_micros = 3;
  167. // Adjusts the bid for each auction upward or downward, depending on the
  168. // likelihood of a conversion. Individual bids may exceed
  169. // cpc_bid_ceiling_micros, but the average bid amount for a campaign should
  170. // not.
  171. optional bool enhanced_cpc_enabled = 4;
  172. }