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